为什么客户端websocket关闭代码与服务器代码不匹配?
我有一个Spring Boot Tomcat服务器,该服务器正在处理来自客户端的websocket连接,这些客户端正在使用:为什么客户端websocket关闭代码与服务器代码不匹配?,websocket,spring-websocket,tyrus,socketrocket,Websocket,Spring Websocket,Tyrus,Socketrocket,我有一个Spring Boot Tomcat服务器,该服务器正在处理来自客户端的websocket连接,这些客户端正在使用: 短袜 泰勒斯 我发现服务器提供的关闭代码通常不是客户端读取的关闭代码 对于SocketRocket,我关闭服务器上的websocket,代码为1000,客户端通常读取1001 对于Tyrus,我关闭代码为1011的websocket,客户端读取1006或1011 关闭代码的说明来自: 1000表示正常关闭,这意味着 已经完成了建立连接的步骤 1001表示端点正在“离开”,
close代码作为将信息从服务器传递到客户端的一种手段是否不可靠?在关闭WebSocket之前,我是否需要在应用程序层实现传递这些信息的东西 这只是猜测,但您列出的WebSocket客户端可能无法正确实现结束握手 你为什么不试试看发生了什么事?库的侦听器接口()的方法定义如下
void onDisconnected(
WebSocket websocket,
WebSocketFrame serverCloseFrame,
WebSocketFrame clientCloseFrame,
boolean closedByServer);
第二个参数serverCloseFrame
是服务器发送给客户端的关闭帧,第三个参数clientCloseFrame
是客户端发送给服务器的关闭帧。在正常情况下,根据规范要求,两个闭合框架的有效载荷相同