springboot websocket集群(stomp协议)连接时候传递参数
最近在公司项目中接到个需求。就是后台跟前端浏览器要保持长连接,后台主动往前台推数据。网上查了下,websocket stomp协议处理这个很简单。但是由于开始是单机玩的,很顺利。但是后面部署到生产搞集群的话,就会出问题了。但是B节点由于没有跟浏览器A建立连接。B节点发的消息浏览器就收不到了。还有很多思路都是通过session获取信息的。这是响应的前端代码。只需要引入两个js。调用new SockJS 就代表跟服务器建立连接了。这样就存入的前台传的参数。发消息的时候 通过userRegistry获取,能获取到就证明是跟本节点建立的链接,直接用本节点发消息就好了。如果不是就利用redis消息队列,把消息推出去。每个节点去判断获取看下是不是本节点的userid。
用户评论