我一直致力于基于网络的聊天,类似于Facebook聊天。在当前状态下,我会监听传入的聊天记录并检查现有聊天中的新消息是否正在进行...
setTimeout(function() { listenForIncomingChat() }, 500);
setTimeout(function() { checkForIncomingMessages( ...params... ) }, 500);
...这样做setTimeout()
可确保这些功能始终在运行。根据我打开的聊天窗口数量,Firebug的控制台可能会因POST
s而疯狂到服务器:)
显然这是非常低效的,但这是我能让事情发挥作用的唯一方法。现在我正在寻找更好的方法,正确地做到这一点!
现在,我听说过Comet Programming并且这是打开与服务器建立长期HTTP连接的方法,但我不熟悉Comet背后的技术或想法。对于HTML5来说WebSockets可能更好,但由于没有全面展开,所有浏览器都支持它,我会坚持使用有效的方法。
根据维基百科,有几种使用Comet风格开发的方法:Streaming(隐藏的iFrame,XMLHttpRequest)或带有长轮询的AJAX(XMLHttpRequest,Script标签)。但是,我对此一无所知。我也读过关于AJAX Push Engine (APE)的内容,它看起来很酷,但我暂时不想使用第三方。
我最近偶然发现了WebChat 2.0,所以我将查看源代码,试着了解它是如何工作的。
那么我在哪里可以找到有关如何开始使用此类项目的示例代码/教程?我如何实施Comet技术?如何设置与服务器的长期HTTP连接?