Comet,使用 jquery 教程进行长轮询 [关闭]

Posted

技术标签:

【中文标题】Comet,使用 jquery 教程进行长轮询 [关闭]【英文标题】:Comet, long polling with jquery tutorial [closed] 【发布时间】:2010-10-15 08:45:56 【问题描述】:

我希望通过使用 ajax 和 jquery 将彗星长轮询功能添加到我的网站,因为我不熟悉 javascript 原型框架。然而,当我搜索这个时,我似乎总是以使用原型框架的教程结束。有谁知道基于 jquery 和 ajax 的彗星长轮询的综合教程?

【问题讨论】:

【参考方案1】:

这是一个使用 jQuery 的 Comet 教程 http://screenr.com/SNHCode 在本教程中使用

【讨论】:

它在该教程中不断运行的循环,是不是服务器很重? 这太棒了。我现在知道如何做基本的彗星了......甜:) 感谢您的代码,它看起来很棒,但我要问一件事:如果我关闭浏览器会发生什么,我怀疑 while 循环仍然可以工作,并假设用户关闭浏览器之后在接下来的一个小时左右,服务器没有任何变化,所以,while 循环将在那一小时内毫无意义地工作,不是吗?谢谢 这不仅仅是对服务器的重复 ajax 调用吗?我在我的萤火虫中看到,只是一个接一个地打电话.... 链接已损坏。【参考方案2】:

Cometd 绑定了 jQuery 和 Dojo JavaScript 库。我不知道它有多全面,但这里有文档:http://cometd.org/documentation/cometd-javascript

【讨论】:

【参考方案3】:

Comet 和长轮询意味着在客户端编写部分代码,在服务器端编写部分代码。您需要在服务器 CometD 或 Ape 中才能连接到 Comet 服务器,我发现安装它们通常很麻烦。

我发现更简单的方法是让 Node.js 带有“comet”模块。 Faye(也可用于 ruby​​)是一个长杆 pub 子服务器,对于聊天非常有用,而 Socket Io 是一种将页面不断更新到套接字(具有 Flash 回退的 websockets)的好方法。

Faye网站:http://faye.jcoglan.com/ Socket Io:http://socket.io/

【讨论】:

【参考方案4】:

我在这里有一个非常简单的示例,可以帮助您开始使用 comet。它涵盖了使用 NHPM 模块编译 nginx,并包含 jQuery、php 和 Bash 中简单发布者/订阅者角色的代码。

http://blog.jamieisaacs.com/2010/08/27/comet-with-nginx-and-jquery/

可以在此处找到一个工作示例(简单聊天):http://cheetah.jamieisaacs.com/

【讨论】:

【参考方案5】:

你可以通过这个强制使用长轮询

var cometd = $.cometd;
cometd.websocketEnabled = false;

希望对你有帮助

【讨论】:

以上是关于Comet,使用 jquery 教程进行长轮询 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

PHP + jQuery - 使用数据库数据进行长轮询不起作用(它不会打破循环)

使用 Xampp 进行长轮询

使用 Httpclient 进行长轮询

使用 php curl 进行长轮询

使用 Node.js 和 ajax 进行长轮询

使用 WinAPI 的 InternetReadFile() 进行长轮询