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”
我们直接看源码:
ok,应该不用多说,代码帮我们自己拼接起来了,跟前端订阅规则保持一致。
直接跑项目,测试一下:
模拟我们连接的用户标识 19901 ,连接成功
使用postman调用我们的测试接口,模拟系统指定推送消息到 19901 这个人 :
然后也给20011发送一下消息:
然后看到对应的用户也能收到对应的消息:
对点推送,广播推送,也已经完毕了 。
这种情况就是相当于使用http接口方式,去撮合后端服务做 消息推送。
其实spring还提供了一些好玩的注解,
@MessageMapping 这个注解是对称于 @EnableWebSocketMessageBroker
也就是说,如果我们使用@EnableWebSocketMessageBroker ,那么我们在接口上面其实就能直接使用 @MessageMapping。
怎么用?
然后前端代码里面 的使用:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。
《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》PDF完整版点击这里领取
,同时减轻大家的负担。**
[外链图片转存中…(img-Fvtsp5Cn-1712477247999)]
[外链图片转存中…(img-7YHWC2bj-1712477247999)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
[外链图片转存中…(img-K2T9Y4xG-1712477248000)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。
《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》PDF完整版点击这里领取
[外链图片转存中…(img-lwhVDTN3-1712477248000)]
[外链图片转存中…(img-7xHc1cGB-1712477248000)]
[外链图片转存中…(img-dgMgJ366-1712477248000)]