websocket session保存为全局变量,然后多线程send(message)会有线程安全问题吗?
比如用spring 的websocket,
比如下面的代码,如果一个人发送a把自己的session存起来,然后很多人发消息给a。
public class MyHandler extends TextWebSocketHandler { public static WebSocketSession> ss; @Override public void handleTextMessage(WebSocketSession session, TextMessage message) {if(message=="a")ss=session;else{ss.sendMessage("msg"); } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
WebSocketSession 可以持久化不???
如果放在list里并发的时候同时访问一个session也会出问题吗?还有,会出什么样的问题呢?直接报错还是直接崩溃。只是调用sendMsg方法
应该会啊,楼组可以使用ThreadLocal来保存WebSocketSession或者使用一个List来保存,每个客户端一个连接,你现在这样写,多个客户端共享一个连接,会出现并发。