我想开发一个近乎实时的网络聊天系统。有没有关于如何通过jQuery实现这一点的建议,有什么需要注意的陷阱,以及我一直在读的这个Comet是什么?
理想情况下,我希望支持多达5,000个并发聊天。
发布于 2011-06-18 21:19:24
Comet,也被称为Ajax推送,通常被称为“反向AJAX”。不是定期从服务器拉取信息,而是在需要时将数据从服务器推送到浏览器。这需要一个开放的连接,有几个实现。
我建议您使用APE。这是一个演示:http://www.ape-project.org/demos/1/ape-real-time-chat.html
real-time.
发布于 2011-06-18 21:19:49
Comet是一种“推送”技术,创建它是为了避免客户端(javascript代码)不断轮询服务器。这可能会导致带宽问题,因为您必须创建(可能)一个新的TCP连接,然后联系http服务器,它运行一些服务器端逻辑,然后向客户端发送响应。使用comet时,如果服务器决定您应该接收某些信息(例如,新的聊天消息),它会直接将其发送给客户端。
有几种不同的实现,你可以有一个启动here。
最简单的实现技术是隐藏的iframe,但我建议使用更易控制的长轮询。
还有一件事,看看HTML5 websokets,它可能是你问题的一个有趣的解决方案(无论如何,与当前的浏览器不太兼容)
发布于 2011-06-18 21:39:47
查看针对node.js的Node.js和nowjs。Node.js可以帮助您使用服务器端JavaScript构建非常高效的服务器,而nowjs是一个允许您构建实时web应用程序的库。甚至还有一个示例屏幕转换,它将一个基本的聊天应用程序放在12行代码中。
你也可以签出Socket.io,这是另一个节点库,它通过抽象不同的传输机制来帮助你构建实时应用程序,并为你提供一个统一的接口来进行编码(支持WebSockets,Flash Sockets,AJAX长轮询,JSONP轮询和永久IFrames)。
我知道你的问题是Node.js,但是如果你正在认真考虑用最少的努力(相对而言)编写一个可伸缩的系统,那么学习PHP是值得的(学习曲线并不是那么陡峭,因为你可能已经了解JS了)。
https://stackoverflow.com/questions/6396228
复制相似问题