一段时间后,Websocket后端客户端连接停止接收流更新

时间:2018-02-18 16:53:23

标签: node.js websocket socket.io

我正在使用nodejs的socket.io-client从远程websocket服务器获取数据流。过了一会儿,我只是停止从远程服务器接收数据。没有错误或关闭事件。数据只是停止了。

有趣的是,我停止接收数据之前的时间因主机系统的规格而异。

例如,在我的笔记本电脑上,这是一款配备16GB内存的4核i7,它可以在我停止接收数据之前过夜(约8-9小时)。在小型AWS EC2服务器上,我会在10分钟内停止接收数据。

如果我强制重新连接到远程服务器,数据将开始进入并在一段时间后停止接收。我目前解决的问题是每10分钟重新连接一次远程服务器。

我最初认为这是我连接的远程服务器的一个错误,所以我切换了我的数据提供程序。但我仍然看到了这个问题。

nodejs进程的内存,cpu和文件描述符用法是名义上的。 strace没有显示任何有趣的东西。我需要一些关于如何调试它的想法。

请注意,我没有从浏览器连接到websocket服务器,而是从nodejs脚本连接到它。

1 个答案:

答案 0 :(得分:0)

如果您将DEBUG环境变量设置为'*',您将能够看到更多信息(如ping / pong,断开连接,重新连接,事件,等等)。这应该有助于缩小问题所在。如果显示的信息过多,您也可以尝试将DEBUG环境变量设置为'socket*,engine*'