当前项目设置
我一直在做一个网络聊天,类似于Facebook聊天.在目前的状态下,我会听到即将到来的聊天记录,并且在现有的聊天中检查新消息是通过做…
setTimeout(function() { listenForIncomingChat() },500); setTimeout(function() { checkForIncomingMessages( ...params... ) },500);
…所以做setTimeout()确保这些函数始终运行.根据我打开的聊天窗口数量多少,Firebug的控制台可以通过POSTs到服务器上变得疯狂:)
显然这是真的没有效率,但这是我唯一可以让工作的方式.现在我正在寻找使它更好的方法,正确地做到!
一些研究
现在,我听说过Comet Programming,这是打开与服务器的长期HTTP连接的方法,但我不熟悉技术或Comet背后的想法.对于HTML5而言,WebSockets可能更好一些,但由于不是全面的,也不是所有浏览器都支持,所以我会坚持有用的.
根据维基百科,有几种使用Comet风格开发的方法:Streaming(隐藏iFrame,XMLHttpRequest)或具有长轮询(XMLHttpRequest,Script tag)的AJAX).但是,我不知道这一点.我也读过AJAX Push Engine (APE),看起来很酷,但我不想暂时使用第三方.
我最近偶然发现了WebChat 2.0,所以我将要查看源代码来尝试了解它们是如何工作的.
关于这个问题
那么在哪里可以找到关于如何开始使用这种项目的示例代码/教程?我将如何实施彗星技术?如何在服务器上设置长时间的HTTP连接?