问题标签 [comet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
50433 浏览

php - 使用 php 和 jquery 的简单彗星示例

谁能给我一个使用 PHP 的彗星技术的简单好例子吗?

我只需要一个使用持久 HTTP 连接或类似连接的示例。我不想使用轮询技术,因为我有类似的设置,不仅难以使用和管理它的大量资源。另外我使用的是 IIS7 而不是 Apache。

一个很好的例子会很有帮助,所以我可以从这种丑陋的轮询技术继续前进。

0 投票
1 回答
1910 浏览

erlang - Erlang(彗星聊天)中的消息队列模型?

我正在与 Erlang 进行 Comet 聊天。我只使用一个连接(长轮询)进行消息传输。但是,如您所知,长轮询连接不能一直保持连接。每次有新消息到达或达到超时时间时,它都会中断,然后再次连接到服务器。如果在连接重新连接之前发送了一条消息,那么保持聊天的完整性就会出现问题。

此外,如果用户使用 Comet-chat 打开多个窗口,则所有聊天消息必须保持同步,这意味着用户可以拥有大量长轮询连接。所以很难保证每条消息都按时送达。

我应该为每个连接建立一个消息队列吗?或者还有什么更好的方法来解决这个问题?

0 投票
2 回答
2959 浏览

http - 在响应浏览器之前我可以等待的安全时间量是多少,而不会出现超时?

我正在制作一个与长轮询一起使用的聊天应用程序,以模拟从服务器到客户端的“推送”。

基本上,浏览器会要求更新,如果有新内容我会回复。否则,我会保持连接打开而不响应,直到有东西要发回。

现在,如果 30 秒过去了,我还没有发送任何东西,那么我会发送一个响应,基本上是“NoNews”,客户端将再次轮询。

我想要做的显然是在浏览器超时并放弃我之前尽可能长时间地保持这种连接而不回复......我还没有找到关于每个浏览器的客户端超时是什么的好文档,而且似乎对所有人来说都不一样...

你们中有人提出过长轮询申请吗?
任何想法最长的安全超时可能是什么?

谢谢!

0 投票
1 回答
748 浏览

java - 使用大气api还是直接使用grizzly?

我看不出使用大气 api 或直接使用 grizzly 之间的区别?能解释一下吗?

0 投票
2 回答
1996 浏览

http - 客户端断开连接时,HTTP 代理/FastCGI/SCGI 未关闭连接 - 错误或功能?

我正在通过长 XMLHttpRequest 轮询为CppCMS框架提供Comet 支持。在许多情况下,这样的请求在服务器给出任何响应之前就被客户端关闭了——例如页面被关闭,用户移动到其他页面或者它只是被刷新。

在服务器端,我希望我会收到连接断开的通知。我通过 3 个连接器测试了应用程序:FastCGI、SCGI 和简单的 HTTP 代理。

从 3 个主要的 UNIX Web 服务器 Apache2、lighttpd 和 Nginx 中,只有最后一个按预期关闭了连接,允许我的应用程序从等待队列中删除请求——这适用于 FastCGI 和 HTTP 代理连接器。(Nginx 默认没有 scgi 模块)。

其他的,Apache 和 Lighttpd 不会关闭连接或通知后端断开客户端,继续进行,就好像客户端仍然在线一样。这适用于所有 3 个受支持的 API:FastCGI、SCGI 和 HTTP 代理。

我已经为Lighttpd打开了一个问题,但更让我担心的是 Apache——作为 lighttpd 的成熟且得到良好支持的 Web 服务器,并且没有透露客户端已经离开的服务器后端。

问题:

  1. 这是一个错误还是一个功能?是否有任何理由不关闭 Web 服务器和应用程序后端之间的连接?
  2. 是否有现实生活中的 Comet 应用程序通过 FastCGI/SCGI/HTTP-Proxy 后端在这些服务器后面工作?
  3. 如果上述情况属实,他们如何处理这个问题?我知道我可以每 10 秒超时一次所有连接,但我想让它们在客户端监听时保持空闲——因为这样可以更容易地扩大规模——每个连接都非常便宜——成本只是打开的套接字。

谢谢!

0 投票
1 回答
633 浏览

java - dwr彗星进近

来自http://directwebremoting.org/dwr/reverse-ajax/index.html ,它声明它支持轮询、彗星、piggyback。这是否意味着当我们实施这种方法时,我们可以在不更改代码的情况下更改配置中的这 3 个选项?dwr 实现与大气 api 有什么不同?dwr 也可以在所有 j2ee 容器上使用,对吗?

0 投票
2 回答
1784 浏览

java - 彗星vs pubsub ..?

我可以知道这两种方法有什么不同吗?可以通俗的解释一下吗?

0 投票
2 回答
2622 浏览

ajax - XMPP 可以像 Comet 的 http long wait 一样使用吗?

XMPP能否以类似于反向 Ajax模式的方式应用?可以像Comet一样用来实现 http long wait吗?有没有在 XMPP 中使用这种技术的例子?

0 投票
3 回答
626 浏览

java - 用 Comet 做一个嵌入式 HTTP 服务器

我喜欢 Grizzly 的想法,但我找不到任何好的例子。好吧,任何好的教程……我想要一个嵌入式 HTTP 服务器,我可以通过 Dojo 与之交谈。我不想要 J2EE 服务器,我想使用 Java。你们有什么想法?

0 投票
3 回答
1984 浏览

ajax - 是否可以从同一页面“多路复用”许多 AJAX 请求?

我有一个页面已经同时发出多个 AJAX 请求。他们使用 Comet 模型,因此总是有多个 HTTP 连接打开,等待来自服务器的更多数据。随着页面在未来变得更加复杂,可能还会有更多。我担心打开太多连接。

我想知道是否有办法“多路复用”它们,即。有一个连接,所有请求都通过该连接发送,并将消息路由到服务器和客户端上的适当处理函数。

到目前为止,我无法找到一种方法来做到这一点,因为一旦我发出 HTTP 请求并开始等待数据,我认为不可能发送更多请求数据。我可以在打开另一个连接以发送更多数据之前关闭该连接,但是如果服务器此时发送响应怎么办?

我是否正在尝试做我不应该做的事情?