我已经为实时聊天(单人、群组)设置了一个服务器。客户端以一定的时间间隔向服务器发送数据。服务器将数据发送给其他用户,也以一定的间隔发送给客户端。
如果我在聊天中添加更多用户,性能会变得更差。我现在该如何提高性能?
我可以通过使用更大的间隔来创造更稳定的性能吗?
或者您有其他想法?
是否有调试工具可以检查哪些服务器操作会降低服务器速度?
socket.io 支持多人聊天吗?
我正在使用 socket.io 2.x
。
最佳答案
跟进评论中的讨论,除了进一步调查该问题外,没有足够的信息可以提出任何其他建议。
即使向数千个用户发送 5 个字节的数据(真的??)也不应该阻塞网络。然而,这归结为实现细节。也许您在发送每条消息后都重新建立了套接字连接。也许您通过发送消息来阻止线程。或者类似的事情发生
你提到了一个数据库。你调查过吗?也许数据库是瓶颈。
您可以在 how to implement time profiling for nodeJS 上阅读这篇文章.除此之外,尝试实现一个简单的脚本来隔离问题。例如
测量向大量用户发送一条简单消息需要多长时间。随着更多用户/更长的消息,时间是否显着增加?
测量在数据库中查找相关内容需要多长时间
在这里发布相关代码,并请第二双眼睛检查问题。
关于node.js - 如何优化 socket io 性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63446308/