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

文章介绍了如何在SpringBoot项目中使用WebSocket实现前端的广播和点对点消息推送,涉及SimpMessagingTemplate的`convertAndSend`和`convertAndSendToUser`方法。同时提到了前端页面的连接测试和Spring的`@EnableWebSocketMessageBroker`注解。结尾部分讨论了前端开发学习资源的整理与分享。
摘要由CSDN通过智能技术生成

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前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

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

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

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

资料过多,篇幅有限,需要文中全部资料可以点击这里获取前端面试资料PDF完整版!

自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。

学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

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

[外链图片转存中…(img-6xJQtneu-1712956290292)]

[外链图片转存中…(img-P1sQnpV7-1712956290293)]

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

[外链图片转存中…(img-KohG6JCK-1712956290293)]

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

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

[外链图片转存中…(img-gRKSYGzK-1712956290293)]

[外链图片转存中…(img-pLKH9NYU-1712956290293)]

资料过多,篇幅有限,需要文中全部资料可以点击这里获取前端面试资料PDF完整版!

自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值