0

我在一个项目中使用 Socket.io 并且会使用 XHR 轮询,但我有 6 个并发连接的限制。因此,打开 5 个标签后,Socket.io 开始挂起。

如果我将轮询持续时间设置为 0 秒(默认值为 20),则限制不再影响应用程序,但 Firebug 显示每秒都有一个请求。

如果我使用 0 秒限制,这将如何影响我的服务器和用户?

4

1 回答 1

3

设置持续时间时,您使用的是 XHR 长轮询。此持续时间指示服务器在没有任何数据要发送时将 HTTP 请求保持打开多长时间。如果服务器确实有数据要发送,则立即发送数据并关闭连接。然后客户端创建一个新的连接并继续循环。

当您将持续时间设置为零时,您实际上是在告诉服务器使用短轮询,如果客户端向服务器请求数据,服务器将立即以空响应或数据响应。

短轮询对客户端和服务器的影响是客户端不会像长轮询允许的那样立即接收消息,但它消耗的资源更少,因为 HTTP 请求没有保持打开状态。这也意味着您可能不会达到并发连接限制,因为连接会立即结束。

于 2013-09-08T19:50:10.467 回答