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



我正在使用nodejs的 socket.io 客户端从远程websocket服务器获取数据流。一段时间后,我只是停止从远程服务器接收数据。没有错误或关闭事件。数据只是停止到达。

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

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

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

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

nodejs 进程的内存、CPU 和文件描述符用法是名义上的。跟踪没有显示任何有趣的内容。我需要一些关于如何调试它的想法。

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

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

相关内容

  • 没有找到相关文章

最新更新