聊天心跳减慢了服务器的速度

时间:2013-04-10 13:51:59

标签: javascript ajax chat

我在一个拥有大约100名活跃用户的系统中使用聊天功能。聊天是使用javascript构建的,每四秒钟运行一个ajax问题到一个从数据库中获取数据的php脚本。当服务器上有大约100个在线用户时,服务器会变得非常慢。

创建聊天比使用包含ajax问题的javascript间隔更好吗?

亲切的问候 / H

2 个答案:

答案 0 :(得分:1)

这是使用单向请求的问题:客户端必须永久地询问服务器以查看是否有新信息。结果,它为服务器增加了一些费用。请参阅wiki上的Polling

解决方案是使用双向请求系统。这将允许服务器自己向客户端发送数据,而不仅仅是等待传入的查询进行响应。这将删除轮询原则,并从服务器上取下一些费用。

我看到三个解决方案:

  • Java applet
  • flash应用程序
  • 用websocket连接替换ajax查询

也许第三种解决方案最简单,因为它不包含当前架构中的新技术。

答案 1 :(得分:1)

使用超时进行ajax通信可能是您可以做的最糟糕的解决方案。

我建议您使用Websockets或AJAX Longpolling。有一个jquery插件可以使用websockets(优雅降级)。也许您甚至可能想要尝试socket.io,它将所有这些组合成一个整洁的框架(node.js serverside)。

This answer为您提供了有关如何通过在服务器端安装PHP来实现此目的的一些信息。