我在一个拥有大约100名活跃用户的系统中使用聊天功能。聊天是使用javascript构建的,每四秒钟运行一个ajax问题到一个从数据库中获取数据的php脚本。当服务器上有大约100个在线用户时,服务器会变得非常慢。
创建聊天比使用包含ajax问题的javascript间隔更好吗?
亲切的问候 / H
答案 0 :(得分:1)
这是使用单向请求的问题:客户端必须永久地询问服务器以查看是否有新信息。结果,它为服务器增加了一些费用。请参阅wiki上的Polling。
解决方案是使用双向请求系统。这将允许服务器自己向客户端发送数据,而不仅仅是等待传入的查询进行响应。这将删除轮询原则,并从服务器上取下一些费用。
我看到三个解决方案:
也许第三种解决方案最简单,因为它不包含当前架构中的新技术。
答案 1 :(得分:1)
使用超时进行ajax通信可能是您可以做的最糟糕的解决方案。
我建议您使用Websockets或AJAX Longpolling。有一个jquery插件可以使用websockets(优雅降级)。也许您甚至可能想要尝试socket.io,它将所有这些组合成一个整洁的框架(node.js serverside)。
This answer为您提供了有关如何通过在服务器端安装PHP来实现此目的的一些信息。