1

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

有没有比使用包含 ajax 问题的 javascript 间隔更好的方法来创建聊天?

亲切的问候/ H

4

2 回答 2

1

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

我建议您使用 Websockets 或 AJAX Longpolling。有一个适用于 websockets 的 jquery 插件(优雅降级)。也许您甚至可能想尝试将这一切组合成一个简洁的框架(node.js 服务器端)的socket.io 。

这个答案为您提供了一些有关如何通过在服务器端安装 PHP 来实现这一点的信息。

于 2013-04-10T15:01:05.273 回答
1

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

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

我看到了三个解决方案:

  • 一个 Java 小程序
  • 闪存应用程序
  • 用 websocket 连接替换 ajax 查询

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

于 2013-04-10T14:56:47.577 回答