问题标签 [long-polling]

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 投票
1 回答
282 浏览

javascript - 是否有实现 Socket.IO 的服务器部分的文档?

我不想使用 NodeJS 服务器实现。我的服务器实现需要支持哪些协议?我在哪里可以找到技术细节?

0 投票
1 回答
4480 浏览

android - 长轮询与 Apple 推送通知服务和 Android C2DM

我正在构建一个具有一些实时限制的移动应用程序。因此,我求助于 stackoverflow 以获取建议和意见,并尝试确定哪个是在运行时更新应用程序状态的最佳解决方案:

  1. 依赖长轮询或直接连接到我的服务器
  2. 依赖 Apple Push Notification Service 和 Android C2DM

除了 APNS 和 C2DM 在应用程序是否运行时提供统一的推送通知接口这一事实之外,可以说自定义解决方案(基于长轮询或直接连接)更灵活,对延迟的依赖更少苹果和安卓队列。

据我所知,我认为大多数争论源于保持连接打开与在智能手机上打开连接所消耗的电池的成本比较。

因此,我对两件事特别感兴趣:

  • 使用 APNS 和 C2DM 的经验
  • 有关在智能手机上保持 TCP 连接打开的所有含义的详细信息。

欢迎参考!谢谢!

0 投票
2 回答
2341 浏览

javascript - 长轮询服务器原理(客户端认证)

假设我有一个按预期工作的长轮询服务器 - 当新客户端连接到网站时(他只是以匿名身份连接而无需身份验证),新的 GUID 被发布并存储在一个签名的 cookie 中,该 cookie 在轮询期间标识此连接客户端和服务器。

现在客户端想要登录并以经过身份验证的用户身份继续。问题是长轮询服务器 (node.js) 和 Web 框架 (ASP.NET) 是作为独立系统工作的。我可以使用 ASP.NET (MVC) 特定的身份验证机制从 Web 框架的角度登录,但这不会影响长轮询服务器(我仍然被称为一些 GUID 人)。从长轮询服务器的角度来看,我应该如何安全地验证用户身份?这种情况是否有任何“最佳实践”?经过身份验证的客户端应该在身份验证过程之后通过其唯一密钥(假设是邮件地址而不是 GUID)进一步识别。

0 投票
3 回答
62496 浏览

javascript - 实时 Web 应用程序的短轮询与长轮询?

我正在构建一个实时 Web 应用程序 据我所知,最流行的选择是短轮询和长轮询。衡量一个比另一个有什么优点和缺点?

0 投票
1 回答
269 浏览

php - 用户退出页面时长轮询会导致问题

我的长轮询系统使用 PHP 和 jQuery 运行,但我在开发时遇到了问题。

当用户退出页面时,它似乎喜欢“堵塞”,AJAX 请求似乎仍然存在并且不会退出。

有谁知道如何预防/克服这个?

0 投票
1 回答
872 浏览

http - http push - 使用 ssl 的 http 流媒体方法 - 代理会干扰 https 流量吗?

我的问题与实现 HTTP Server Push 的 HTTP Streaming Method 有关:

“HTTP 流”机制使请求无限期地保持打开状态。即使在服务器将数据推送到客户端之后,它也不会终止请求或关闭连接。这种机制显着降低了网络延迟,因为客户端和服务器不需要打开和关闭连接。

HTTP 流机制基于服务器在同一响应上发送多条信息的能力,而无需终止请求或连接。这个结果可以通过 HTTP/1.1 和 HTTP/1.0 服务器来实现。

HTTP 协议允许中介(代理、透明代理、网关等)参与从服务器到客户端的响应传输。中介不需要立即转发部分响应,并且在向客户端发送任何数据之前缓冲整个响应是合法的(例如,缓存透明代理)。HTTP 流将不适用于此类中介。

如果我使用 HTTPS,是否可以避免代理服务器的描述问题?

0 投票
1 回答
578 浏览

javascript - 废弃开放连接的彗星问题

我正在使用一些彗星技术,包括长轮询和永远帧。我将 iframe 用于跨子域的东西。我在实现这些技术时遇到的一个问题是,当用户刷新页面或导航到另一个页面导致新请求时,彗星连接从旧页面保持打开状态。我的服务器(龙卷风)从未收到关闭连接,并且由于我有限的wireshark 能力,我看不到任何发送的TCP fin 数据包。但是,当我关闭浏览器时,此时套接字已关闭。

这些废弃的打开连接只是无缘无故地耗尽了服务器端的内存。当服务器向打开的套接字发送一些消息并且 IE 然后正确显示错误消息时,它也会导致问题:“无法从释放的脚本执行代码”。所以 IE 试图在被导航的旧窗口上执行代码。其他人如何处理这个问题?我应该使用 onbeforeunload 以某种方式关闭连接吗?

0 投票
3 回答
4690 浏览

php - Nginx 在长轮询时作为反向代理

我有 apache 作为后端服务器,它运行 php 脚本和 nginx 作为处理静态内容的反向代理服务器。一个 php 脚本,它给我一些进程的 ID,然后执行这个进程(很长)。我只需要将该进程的 ID 传递给浏览器。

(我用另一个 ajax 脚本检查进程的状态)

这在 apache 下工作正常。但是当apache落后于nginx时我遇到了问题。在这种情况下,我只有在过程完全完成时才会得到响应。

nginx设置:

但我仍然在 FireBug 中获得 Connection keep-alive。

我怎样才能让 nginx 立即给出来自 apache 的响应?

希望问题很清楚。

谢谢。

0 投票
1 回答
373 浏览

apache-flex - 在 Longpolling 通道上检测 FlexClient 断开连接

我正在开发一个聊天系统,我需要使用 longpolling 通道检测 Java 中的 FlexClient 断开连接。

我不能使用 Streaming 频道,因为这种频道仍然存在一些错误。你对我如何做到这一点有什么建议吗?我正在使用 BlazeDS。

问候。

0 投票
2 回答
1566 浏览

php - 长轮询/彗星 php 后端没有刷新正确的数据 - 新手问题

我正在尝试整理一个非常简单的彗星测试页面。我有一个主客户端页面,其 div ID 为#TextHistory。此页面中的 javascript 应创建与 backend.php 的开放连接,该连接使用 javascript 更新值并将其刷新回客户端页面。我真的不确定我是否做对了……我的基础是如何实现基本的“长轮询”?.

我在客户端页面 (FireFox) 上发现它看起来 backend.php 没有返回任何内容,并且在 10 秒后超时。如果我在 backend.php 中取出 php 循环,它会不断返回“DefaultData”并直接附加到 TextHistory DIV。我觉得我很接近但做错了什么。抱歉,这里的格式很奇怪,看起来有些标题和 php 标签是不允许的。

客户端:

Backend.php 被称为:

然后默认 html doctype、head、meta、jquery 包括,

然后在体内: