【问题标题】:jQuery comet push, without comet serverjQuery彗星推送,没有彗星服务器
【发布时间】:2012-07-26 19:52:30
【问题描述】:

当我的 mongodb 添加条目时,我想做的是通过 jQuery PUSH。我看到了很多 jQuery 插件,但它们是 LONG POLLING 而不是 PUSH

我很想知道这是怎么回事here(如果你打开两个不同的窗口并尝试聊天你就会知道)

这家伙写了this sample code

他正在使用prototype.js,我在后端代码中看到,没有什么特别之处。只是 MySQL select 语句,但每当 MySQL 数据库更改原型彗星对象时都会对此做出响应。

我们可以在 jQuery 中做类似的事情吗?我相信这不是投票,而是PUSHprototype.js
或者它就像原型连接到套接字?抱歉,我不太了解套接字是什么,但是当我的 mongodb 添加条目时,我真正想做的是通过 jQuery PUSH

【问题讨论】:

  • 我看不到请求更改的客户端是如何推送而不是轮询
  • 客户没有问。 php 对此的响应,当 mysql 条目存在时。如果您将打开控制台窗口并在输入框中输入一些内容,您将看到它的 xhr 请求,但在 PUSH 上。怎么样?
  • 客户端通过与 Comet 服务器建立初始连接来询问。 Comet 服务器然后将它被告知要推送的任何内容推送到连接的任何客户端。虽然 Comet 的应用程序是用 JavaScript 编写的,但 jQuery 不是一个合适的工具,因为它是为 DOM 操作而设计的,而不是你想要做的。
  • 是的没错,但是没有彗星服务器!!在bit.ly/QeNEMK 阅读他的代码。怎么会?
  • 嗯,如果您不完全了解您链接的演示应用程序是如何工作的,那么在您解决该问题之前,您需要做更多的研究(自己)。对不起。

标签: jquery push-notification prototype server-push


【解决方案1】:

让我们一劳永逸地解决这个问题。由于我不是原型用户,因此我必须阅读文档才能提出这一点。

您可以通过这种方式从 JavaScript 控制台访问底层 XMLHttpRequestRedirected

$ comet.ajax.transport.readyState
1

readyState1,代表OPENED

想测试一下吗?覆盖 XMLHttpRequestRedirected.onreadystatechanged 避免它重新连接(并保持打开等待。)

$ comet.ajax.transport.onreadystatechange = function(){
  console.log("Don't reconnect");
}; 
$ comet.ajax.transport.abort();

您将看到Don't reconnect 消息,并且长轮询将停止。

现在尝试发送消息。什么都不会发生。

【讨论】:

    猜你喜欢
    • 2010-12-31
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 1970-01-01
    • 2011-01-02
    • 2010-10-11
    相关资源
    最近更新 更多