Springboot 整合 WebSocket ,使用STOMP协议 ,前后端整合实战 (一)

本文介绍了如何在Java应用中使用WebSocket技术,通过SimpMessagingTemplate实现广播和点对点消息推送,以及在前端页面上进行测试和调试的过程。同时提到了前端开发者面临的技能提升挑战和资源分享情况。
摘要由CSDN通过智能技术生成

//广播

registry.addEndpoint(“/publicServer”).setAllowedOrigins(“*”).withSockJS();

//点对点

registry.addEndpoint(“/privateServer”).setAllowedOrigins(“*”).withSockJS();

}

}

4.推送消息的实体类 Message.java

/**

  • @Author JCccc

  • @Description

  • @Date 2021/8/20 9:26

*/

public class Message {

/**

  • 消息编码

*/

private String code;

/**

  • 来自(保证唯一)

*/

private String form;

/**

  • 去自(保证唯一)

*/

private String to;

/**

  • 内容

*/

private String content;

public String getCode() {

return code;

}

public void setCode(String code) {

this.code = code;

}

public String getForm() {

return form;

}

public void setForm(String form) {

this.form = form;

}

public String getTo() {

return to;

}

public void setTo(String to) {

this.to = to;

}

public String getContent() {

return content;

}

public void setContent(String content) {

this.content = content;

}

}

5.前端简单调试页面

① publicExample.html 监听广播消息的测试页面

等系统推消息

Seems your browser doesn’t support Javascript! Websocket relies on Javascript being

enabled. Please enable

Javascript and reload this page!

连接广播频道

Connect

取消连接

Disconnect

广播消息

Send

接收到的消息:

简析:

趁热打铁,我们模拟系统后端给前端推送广播消息,通过接口模拟:

TestController.java

/**

  • @Author JCccc

  • @Description

  • @Date 2021/8/20 8:53

*/

@Controller

public class TestController {

@Autowired

public SimpMessagingTemplate template;

/**

  • 广播

  • @param msg

*/

@ResponseBody

@RequestMapping(“/pushToAll”)

public void subscribe( @RequestBody Message msg) {

template.convertAndSend(“/topic/all”, msg.getContent());

}

}

简析:

我们推送消息,直接用 SimpMessagingTemplate ,

用的是convertAndSend 广播方式推送到对于的主题目的地 destination 。

(可以看到其实还有convertAndSendToUser ,不着急,后面会说,这是发送给某个连接用户的)

直接把项目跑起来,打开页面开始测试:

我们先点击connect ,连接成功:

可以看到实际上stomp.min.js 最终也是转化成为 ws/wss这种方式成功连接:

调用测试接口,推送广播消息:

在console其实也能看到:

广播功能就到这,接下来是 点对点。

前端页面:

privateExample.html

聊起来

Seems your browser doesn’t support Javascript! Websocket relies on Javascript being

enabled. Please enable

Javascript and reload this page!

连接用户

Connect

取消连接

Disconnect

发送消息

内容

发给谁

Send

接收到的消息:

简析:

趁热打铁,我们模拟系统后端给前端推送点对点消息(指定某个用户),通过接口模拟:

/**

  • 点对点

*/

@ResponseBody

@RequestMapping(“/pushToOne”)

public void queue(@RequestBody Message msg) {

System.out.println(“进入方法”);

/*使用convertAndSendToUser方法,第一个参数为用户id,此时js中的订阅地址为

“/user/” + 用户Id + “/message”,其中"/user"是固定的*/

template.convertAndSendToUser(msg.getTo(), “/message”, msg.getContent());

}

用的是convertAndSendToUser 推送到指定的用户 ,对于的主题目的地 destination(/message)

也许看到这里,你会觉得很奇怪,为什么我们推的主题是 /message,但是前端订阅的却是

“/user/” + 用户Id + “/message”

我们直接看源码:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

总结

为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。

内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

前端面试题汇总

JavaScript

性能

linux

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

前端面试题汇总

JavaScript

性能

linux

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-g6y9ntXa-1712863674942)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值