问题标签 [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 回答
4755 浏览

jquery - Jquery Ajax 调用崩溃的 Internet Explorer?

我必须承认,这是我在这个网站上的第一篇文章,所以如果我做错了什么(格式等),我会在建议中道歉。

无论如何,我正在使用 javascript(和 jQuery)创建一种 mmo,到目前为止,在 Chrome、Safari、Firefox 等中一切都运行良好。但是,我发现在某个地方,Internet Explorer 崩溃了。

通过重现崩溃,我将其范围缩小到以下代码:

应该长时间轮询更新。但是,在 IE 中,在一次回复后,此代码会陷入无限循环,这将导致浏览器崩溃。每次回复后似乎都不会崩溃,只有在没有服务器响应的情况下。

请注意,显示“完整:...”的行已被尝试为:

发生同样的问题。

0 投票
1 回答
1468 浏览

javascript - 如何最好地在 JavaScript 中实现轮询消费者模式

背景

早在 5 月,我就在 WebKit 上报告了一个关于内存保留问题的问题。看起来问题可能是由于 Web Inspector 本身造成的,但我还不相信。

问题

一个问题浮出水面,我的 JavaScript 应用程序实现了“轮询消费者”模式,以便在数据可用时获取数据。问题是记忆被保留并全天增长。JavaScript 逻辑如下所示:

  1. 获取数据并给我回电话
  2. 当我被回调处理数据然后执行步骤 1

这是在 JavaScript 中实现轮询消费者的合理方式吗?顺便说一句,我正在使用 jQuery 的 ajax 函数,这当然可能有它自己的问题。此外,我使用 jQuery 代理作为成功处理程序,因此我认为通过范围保留应该不是问题。我也在不使用代理的情况下观察到了这个问题。一些代码:

0 投票
3 回答
2362 浏览

php - MySQL 触发器 + 通知长轮询 Apache/PHP 连接

我知道有 Comet 服务器技术可以做到这一点,但我想写一些简单的、本土的东西。

当一条记录被插入到 MySQL 表中时,我希望它以某种方式将这些数据传递给使用 PHP(或其他)的一系列长轮询 Apache 连接。因此,多人通过他们的浏览器“收听”,并且第二次 MySQL INSERT 发生,它被发送到他们的浏览器并执行。

简单的方法是让 PHP 脚本轮询 MySQL 数据库,但这并不是真正从服务器推送,而是引入了一些不可接受的不必要数据库查询的顺序。我想从 MySQL 获取数据到长轮询连接,基本上没有侦听器查询。

关于如何实现这一点的任何想法?

0 投票
1 回答
118 浏览

ip-address - 使用 COMET 服务器实现假设恒定 IP 地址是否安全?

我们的网站使用内部实现的长轮询 COMET 服务器与客户端计算机上的网页进行通信。Connection对象管理单个客户端的请求和响应。该Connection对象可以存活数小时并处理来自同一客户端的数百个请求,同时它们仍保持“连接”到服务器。

我的问题是:假设单个客户端在单个会话上的请求的原始地址将保持不变是否安全?我想制定规则来强制执行这一点,如果客户端来自新的 ipAddress,他们需要从头开始。我想知道是否存在一种常见情况,即来自单个浏览器的请求可能来自不同的 ipAddress,其速率会使我的计划变得愚蠢。

0 投票
2 回答
1533 浏览

javascript - jsonp彗星挂起请求导致浏览器上出现丑陋的“加载”状态

我是用jsonp做跨域彗星请求的,“加载中”的状态真的很烦人。

有没有办法用javascript来抑制这个?

对于那些不熟悉 jsonp 的人来说,它基本上注入了一个脚本标签,除了在我的情况下,我将请求挂在我的服务器上,直到稍后才返回请求。

在此期间,浏览器将我的请求视为“加载”状态。

我正在使用这个:http ://code.google.com/p/jquery-jsonp/

提前致谢!

0 投票
1 回答
2177 浏览

java - 使用暴露为 @WebService 的基于 SOAP 的 @Stateless EJB 实现长轮询

我有一个预先存在的基于 SOAP 的 Web 服务,我想通过它提供一个基于长轮询的通知系统。我该如何实施?该客户端当前是一个 Java 桌面富客户端,它必须从其他连接的客户端接收更新。服务器是 GlassFish 3.01。我有一个基本的、阻塞的@WebMethod,但我遇到了使用它的问题。下面是一些显示 web 方法思想的伪代码:

在客户端,我使用 Future 对象异步调用它:

客户端似乎工作正常。但是,我有两个问题由此产生,似乎是由于 Web 服务调用的持久性:

  1. 每个请求者都使用一个活动的 http 侦听器,因此这是不可扩展的,
  2. 当客户端断开连接时,GlassFish 会引发异常(SSL 异常,因为所有调用都必须通过安全 SSL 侦听器(默认情况下为 http-listener-2))。

我需要使用 com.sun.grizzly.comet.CometEngine 吗?EJB 3.1 @Asynchronous 注解在这里有什么作用吗?我发现的所有示例都依赖于 Servlet API、AJAX 和其他不适用的技术。谢谢你。

0 投票
0 回答
3115 浏览

.net - IIS 上的 Ajax 长轮询

可能重复:
ASP.NET 的 Comet 实现?

我正在考虑制作一个实时聊天网站,但在开始之前遇到了一些问题。

首先,我们希望能够在一个对话中让多个人同时进行多个对话。

在做了一些研究之后,很多人建议进行长轮询。可扩展性听起来像是一个问题,似乎每个用户都会在服务器上等待一个连接,并且每个连接都使用自己的线程。当有多个用户时,这可能会导致性能问题。大多数时候,当我读到这个时,他们将 Apache 称为服务器。我会遇到与 IIS(6 或 7)相同的问题吗?在遇到问题之前,IIS 大约可以处理多少用户?

在 IIS 上使用 ajax 进行长轮询是创建实时聊天网站的好选择,还是有不同的服务器可以更好地处理连接?还有什么我们应该研究的吗?

0 投票
2 回答
4823 浏览

php - AJAX 轮询频率 - 长轮询还是不长轮询?

我正在构建一个需要相对恒定的数据库轮询的网页组件。我可以看到两种不同的方法,我想知道其中一种是否比其他方法更好,或者我是否缺少第三种选择。

1) 每 1 或 2 秒发送一次 AJAX 请求以检查更新。无论是否有新数据,每个请求都会立即返回。
2) 触发一个 AJAX 请求,该请求在接收到数据或发生超时之前不会返回。在其中任何一个发生时,它都会触发下一个请求。(我认为这称为长轮询?)

数据库查询的数量将与任何一个相同,但使用 #2 时,从浏览器发出的请求会更少,这可以节省带宽和客户端资源。对于服务器,最好让单个 PHP 请求保持活动状态并在查询之间休眠,还是每隔几秒启动一次,轮询数据库,然后关闭?还是没有区别,我对此压力太大了?

编辑:我想我还应该声明这是一个更大的网络应用程序的聊天小部件。通信中的轻微延迟不会杀死用户,因为聊天是次要功能。

0 投票
0 回答
289 浏览

javascript - 如何防止 webkits 不断的 url 加载 url / thomber of doom

关于这个有几个问题,但大多缺乏细节,也没有明确的答案。

所以我使用 xhr 长轮询,我的轮询非常基本,看起来像

我从之前导入的脚本开始,我完全删除了页面上的所有其他内容,所以唯一在 javascript 中加载的内容(同步),然后我将调用包装在

但是 webkit 仍然给我一个不断加载的 url 栏,我可以将 0 更改为任意数字来修复它,但是我真的想要一种一致的方式来永远不会再看到这个问题。

有人有想法么?我尝试了各种其他技术来等待加载,检查 web 检查器显示包含运行上述 js 的文件是轮询开始之前加载的最后一件事,该文件的最后一行是 })(); 执行整个事情。

0 投票
1 回答
936 浏览

java - 什么java comet风格的框架最成熟健壮?

Tomcat6/Comet/NIO(示例)似乎存在重大问题。大多数人使用其他东西做异步http吗?码头/继续?Glassfish 的 servlet 3.0 实现怎么样?其他的?