基于网络的文字聊天?

时间:2011-06-18 13:09:32

标签: php jquery mysql

我想开发一个近乎实时的基于网络的聊天系统。关于如何通过jQuery实现这一点的任何建议,任何需要注意的问题,以及我一直在阅读的这个Comet事情是什么?

理想情况下,我想支持最多约5,000个并发聊天。

3 个答案:

答案 0 :(得分:3)

彗星,也称为Ajax Push,经常被称为“反向AJAX”。而不是定期从服务器中提取信息,而是在需要时将数据从服务器推送到浏览器。这需要一个开放的连接,有几个实现。

我建议您使用APE。这是一个演示:http://www.ape-project.org/demos/1/ape-real-time-chat.html

  • 优势:它会非常敏感 和实时。
  • 缺点:你需要 在你的上设置APE服务器 网络服务器机器。

答案 1 :(得分:3)

Comet是一种“推送”技术,旨在避免客户端(javascript代码)不断轮询服务器。这可能会导致带宽问题,因为您必须创建(可能)新的TCP连接,然后联系http服务器,他运行一些服务器端逻辑,然后向客户端发送响应。对于彗星,如果服务器决定你应该收集一些信息(例如,新的聊天消息),他会直接将其发送给客户。

有几种不同的实现,您可以有一个开始here

最简单的实现tecnique是隐藏的iframe,但我认为长轮询更可控。

还有一件事,看看HTML5 websokets,这可能是你问题的一个有趣的解决方案(无论如何与当前浏览器不兼容)

答案 2 :(得分:1)

查看Node.jsnowjs以获取node.js. Node.js帮助您使用服务器端JavaScript构建非常高效的服务器,nowjs是一个允许您构建实时Web应用程序的库。甚至还有一个屏幕演示示例,它将基本的聊天应用程序放在12行代码中。

您还可以签出Socket.io这是另一个节点库,它可以帮助您构建实时应用程序,方法是抽象出不同的传输机制,并为您提供统一的代码接口(支持WebSockets,Flash Sockets,AJAX长轮询, JSONP Polling和Forever IFrames。)

我意识到你标记了你的问题PHP但是如果你正在认真考虑用最少的努力编写一个可扩展的系统(相对而言)那么学习Node.js值得花时间(并且学习曲线不是那么陡峭,因为你可能已经知道了JS)。