node.js - 如何优化 socket io 性能?

标签 node.js socket.io

我已经为实时聊天(单人、群组)设置了一个服务器。客户端以一定的时间间隔向服务器发送数据。服务器将数据发送给其他用户,也以一定的间隔发送给客户端。

如果我在聊天中添加更多用户,性能会变得更差。我现在该如何提高性能?

我可以通过使用更大的间隔来创造更稳定的性能吗?

或者您有其他想法?

是否有调试工具可以检查哪些服务器操作会降低服务器速度?

socket.io 支持多人聊天吗?

我正在使用 socket.io 2.x

最佳答案

跟进评论中的讨论,除了进一步调查该问题外,没有足够的信息可以提出任何其他建议。

  1. 即使向数千个用户发送 5 个字节的数据(真的??)也不应该阻塞网络。然而,这归结为实现细节。也许您在发送每条消息后都重新建立了套接字连接。也许您通过发送消息来阻止线程。或者类似的事情发生

  2. 你提到了一个数据库。你调查过吗?也许数据库是瓶颈。

您可以在 how to implement time profiling for nodeJS 上阅读这篇文章.除此之外,尝试实现一个简单的脚本来隔离问题。例如

  1. 测量向大量用户发送一条简单消息需要多长时间。随着更多用户/更长的消息,时间是否显着增加?

  2. 测量在数据库中查找相关内容需要多长时间

在这里发布相关代码,并请第二双眼睛检查问题。

关于node.js - 如何优化 socket io 性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63446308/

相关文章:

javascript - 将 mongoDB 文档数据存储为变量

node.js - 如何使用 socket.io 和 cryptojs 以及 sql server 结果发出对象数组?

javascript - Mongoose 连接不工作

javascript - Nodejs : how to troubleshoot a module on the Windows compatibility problems?

c - 给 read() 一个起始位置

node.js - socket.io RAM 使用率随时间上升

node.js - 等待数据在数据库中出现/更改

node.js - 部署到 Heroku 的 NodeJS 应用程序不支持异步函数

python - Socket.IO 与 Twisted

python - 与 Flask-socketio 进行私有(private)聊天