我一直在节点服务器上使用socket.io为我的网站开发发布功能。在过去一个月左右的时间里,我一直遇到问题,因为套接字连接在运行几天后变得非常缓慢或完全没有响应。服务器没有内存不足。我对调试这类问题并不十分熟悉。
socket.io日志没有告诉我“websocket connection invalid”或“client not handshaken”客户端应该重新连接'“
我已经google了一下,最终看到一个线程建议在命令行中运行netstat,并在FIN_WAIT2和CLOSE_WAIT中看到大量连接,并认为这是我的问题的原因。在看了socket.io github上的一些线程后,建议升级到分支0.9.14(我当时运行的是0.9.13)。
我已经这样做了,当服务器只连续运行几天时,我仍然有“停机时间”。我的网站没有任何接近交通量的地方,这应该是一个问题。
我的日志中出现了一个新的错误(websocket解析器错误:没有操作码10的处理程序),但我的谷歌搜索已经出现问题。我不知道在哪里可以解决这个问题,或者我只是在一个红色的鲱鱼之后,真正的问题是你们中的一个人可以帮助我解释一下。
我正在运行node.js v0.10.10并使用socket.io v0.9.14。 Linux服务器的硬重启将在100%的时间内解决问题,而重新启动节点服务则不会,这使我相信这是与服务器上的打开套接字相关的问题。