Socket.io的最佳轮询持续时间限制是多少?

时间:2013-09-08 19:38:46

标签: node.js sockets xmlhttprequest socket.io long-polling

我在项目上使用Socket.io并使用XHR轮询,但我有6个并发连接的限制。因此,在打开5个选项卡后,Socket.io开始挂起。

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

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

1 个答案:

答案 0 :(得分:3)

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

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

短轮询对客户端和服务器的影响是客户端不会在长轮询允许的情况下立即接收消息,但由于HTTP请求未保持打开,因此消耗的资源更少。这也意味着您可能不会达到并发连接限制,因为连接会立即结束。