套接字io聊天-随机断开客户端ping超时并传输关闭错误版本2.2.0

时间:2019-06-11 07:43:35

标签: node.js express websocket socket.io chat

我有一个使用Socket io在Node JS Express上运行的聊天应用程序。

以前,当客户端发送超过4 MB的大图像时,客户端已断开连接,我发现套接字io无法通过套接字发出事件在Base64中处理/流/发送如此大的数据。因此,我最终使用了此socket io file upload module。 现在,我正在使用Socket io文件上传模块,以允许用户在聊天期间上传照片/文件。现在,即使我上传了最大的图像/文件,聊天也不会断开。

但是,即使只是在进行文本聊天,客户端仍然会随机断开,并出现许多错误,例如ping超时,传输关闭等。

下面是我的套接字io客户端和服务器配置,我尝试使用pingTimeout和pingInterval值,但客户端仍然断开连接。

套接字IO客户端配置:

socket io client

套接字IO服务器配置:

socket io server

聊天断开时客户端JS日志:

JS console log when chat disconnects

我的套接字io客户端和服务器版本:

socket io versions

类似的问题,但是尝试任何解决方案都没有运气:https://github.com/socketio/socket.io/issues/2769

我的应用程序中大约有500-800个并发客户端正在使用它。

我的服务器规范在哪里部署了应用程序

  • 32 GB RAM,8个vCPU,Ubuntu Lemp 16.04,Node ver 8.9.3

我的问题:

  1. 我的套接字io客户端和服务器最佳配置是什么(例如pingTimeout和pingInterval等设置),以消除随机断开连接问题?
  2. 我是否需要升级服务器规格以适应此类流量?如果是这样,我应该升级多少?
    1. 这可能是当许多用户使用socket io文件上传模块上传文件时,导致Socket io服务器内存不足而导致其他客户端断开连接的原因吗?我如何阻止这种情况的发生?

1 个答案:

答案 0 :(得分:0)

应该保持一致。

在客户端配置中,您已经定义了'transports':['polling',“ websocket”]; 因此它必须在服务器配置中也“传输”:['polling',“ websocket”]