SpringBoot WebSocket集群(STOMP协议)连接时如何传递参数?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1414个文字,预计阅读时间需要6分钟。
最近在项目中发现了一个需求。需要后台与前端浏览器保持长连接,后台主动向前端推送数据。查阅了相关资料,了解到可以使用WebSocket+STOMP协议来实现这个功能。虽然这个实现很简单,但它是基于Spring Boot集成的。不过,由于刚开始接触,对具体实现细节还有些模糊。
最近在公司项目中接到个需求。就是后台跟前端浏览器要保持长连接,后台主动往前台推数据。
网上查了下,websocket stomp协议处理这个很简单。尤其是跟springboot 集成。
但是由于开始是单机玩的,很顺利。
但是后面部署到生产搞集群的话,就会出问题了。
假如集群两个节点,浏览器A与节点A建立连接,A节点发的消息浏览器A节点肯定能收到。但是B节点由于没有跟浏览器A建立连接。B节点发的消息浏览器就收不到了。
网上也查了好多,但是没有一个说的很清楚的,也很多都是理论层面的。
还有很多思路都是通过session获取信息的。但是这都不是我需要的。我需要的是从前台传递参数,连接的时候每个节点保存下。然后通过SimpleUserRegistry.getUser获取。
话不多说,直接上代码。
本文共计1414个文字,预计阅读时间需要6分钟。
最近在项目中发现了一个需求。需要后台与前端浏览器保持长连接,后台主动向前端推送数据。查阅了相关资料,了解到可以使用WebSocket+STOMP协议来实现这个功能。虽然这个实现很简单,但它是基于Spring Boot集成的。不过,由于刚开始接触,对具体实现细节还有些模糊。
最近在公司项目中接到个需求。就是后台跟前端浏览器要保持长连接,后台主动往前台推数据。
网上查了下,websocket stomp协议处理这个很简单。尤其是跟springboot 集成。
但是由于开始是单机玩的,很顺利。
但是后面部署到生产搞集群的话,就会出问题了。
假如集群两个节点,浏览器A与节点A建立连接,A节点发的消息浏览器A节点肯定能收到。但是B节点由于没有跟浏览器A建立连接。B节点发的消息浏览器就收不到了。
网上也查了好多,但是没有一个说的很清楚的,也很多都是理论层面的。
还有很多思路都是通过session获取信息的。但是这都不是我需要的。我需要的是从前台传递参数,连接的时候每个节点保存下。然后通过SimpleUserRegistry.getUser获取。
话不多说,直接上代码。

