最近项目要使用websocket,总结记录了使用过程中疑问困惑如下:
1、session线程安全
每次请求websocket都会实例化一个新的端点,就像HttpSession一样,请求之间互不干扰,不需要我们处理多线程问题。
2、websocket总是报错Unable to write the complete message as the WebSocket connection has been closed
这个问题是tomcat的bug,我之前使用的是tomcat7.0.68,升级高版本tomcat8就不存在这个问题。
3、前端调用websocket close函数
前端调用close()函数,主动关闭连接,会触发后台close事件,在onclose中再调用send函数发送消息报错,因为socket连接已经关闭。
4、后台触发error事件,首先会进入到onError()回调函数,最终触发close事件,进入关闭onClose回调函数。
进入onClose时,websocket连接已经关闭,前后端不能再发送消息。