ajax – 出于这个世界Comet编程和基于Web的聊天

当前项目设置

我一直在做一个网络聊天,类似于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连接?

Here’s一个使用node.js的聊天室的例子,源代码here.

我相信客户端使用轮询,但这个例子很有意思,因为服务器端也在JS中,node.js对于这种类型的东西是有效的.

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...