在什么情况下websocket会停止从缓冲区读取
我有一个websocket服务器。它接受来自客户端的数千个连接。从客户端读取数据并向客户端写入数据。它将正常工作数周。但偶尔会发生一些错误,可能两周一次。在很短的时间内,新客户机将与服务器建立连接,并立即发送协议。将调用服务器端websocket.onOpen(),但它无法从客户端读取协议数据。稍后,客户端可能会关闭连接。但在服务器端,连接将保持在在什么情况下websocket会停止从缓冲区读取,websocket,Websocket,我有一个websocket服务器。它接受来自客户端的数千个连接。从客户端读取数据并向客户端写入数据。它将正常工作数周。但偶尔会发生一些错误,可能两周一次。在很短的时间内,新客户机将与服务器建立连接,并立即发送协议。将调用服务器端websocket.onOpen(),但它无法从客户端读取协议数据。稍后,客户端可能会关闭连接。但在服务器端,连接将保持在CLOSE\u WAIT状态,但从未成功关闭。通过netstat,我可以看到CLOSE\u WAITconnections的读取缓冲区不是空的,并保留
CLOSE\u WAIT
状态,但从未成功关闭。通过netstat,我可以看到CLOSE\u WAIT
connections的读取缓冲区不是空的,并保留该值(从不读取)。因此,我猜想服务器无法读取数据,而closeFIN
包导致连接保持在close\u WAIT
状态
所以我想知道在什么情况下websocket可能无法从读取缓冲区读取数据 在我看来,这可能是服务器的反应器循环出现故障。。。您仍然可以从同一服务器获取网页(以了解是否仅限于websocket连接)?谢谢!这是一个tomcat游戏服务器。我们在端口7000上有一个连接器,用于ws://。端口443上的另一个连接器,用于wss://。这两个连接器可能具有不同数量的客户端。当客户端无法与7000 ws:///通信时,我使用netstat查看端口7000上大约有7000多个CLOSE\u WAIT连接,端口443上大约有80多个CLOSE\u WAIT连接。在很短的时间内,443(wss)工作正常。但端口7000关闭等待数量持续增长。当总连接数达到10200(小时硬限制)时。wss://也无法工作(打开太多文件),您可能应该将此作为一个答案发布。似乎其他人会觉得这很有帮助。