长轮询脚本是什么样的,以及如何实现它,

时间:2013-03-03 00:59:35

标签: php long-polling

所有。我有一个有一个小聊天室的网站,我的用户越来越多地占用我的带宽,在搜索了一些奇迹后,我终于难以接受一些性感的东西:)来自我的理解,叫做 Long Polling

  

这是一个应该保持连接的简单方法   服务器/客户端UN-interapted更长的一段时间,并通过做   因此,对持续请求的需求减少了90%。

现在,我可能错了。但是,这个“简单”的东西是如何产生的呢?下面,您可以看到我的聊天脚本,我是使用Jquery从教程创建的。它工作正常,但它没有longpolling功能。

以下是PHPJavascript 代码(我不能将它们粘贴到此处,因为它们太长了。)

现在,问题是如何将长轮询脚本注入我已构建的代码中?

1 个答案:

答案 0 :(得分:1)

我还没有读过你的代码,但这里有一个很小的例子:

function waitForNotification() {
    $.ajax(url, {
        timeout: 60000,
        success: function(e) {
            //do want you want with e
            //and call function again:
            waitForNotification();
        }
    });
}

在服务器端,您需要收集所有ajax(在url)请求,并仅在发布新消息时释放响应。显然,服务器端方法更难实现,完全取决于您的服务器架构(您可以使用COMET实现)。

如果您自己实现它,请注意,实际上在客户端处理m事件时可能会发布新消息success(并且错过了m通知)。

根据需要配置ajax请求(处理其他事件)。

有趣: