【问题标题】:Socket io chat - disconnecting clients randomly ping timeout and transport close errors ver 2.2.0套接字 io 聊天 - 断开客户端随机 ping 超时和传输关闭错误 2.2.0 版
【发布时间】:2019-06-11 07:43:35
【问题描述】:

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

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

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

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

Socket IO 客户端配置:

Socket IO 服务器配置:

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

我的 socket io 客户端和服务器版本:

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

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

我的应用程序部署的服务器规格:

  • 32 GB RAM,8 个 vCPU,Ubuntu Lemp 16.04,节点版本 8.9.3

我的问题:

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

【问题讨论】:

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


【解决方案1】:

应该是一致的。

在客户端配置中,您已经定义了 'transsports': ['polling' , "websocket"]; 所以它必须在服务器配置中也是 'transsports': ['polling', "websocket"]

【讨论】:

    猜你喜欢
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 2016-11-06
    相关资源
    最近更新 更多