长轮询(HTTP长连接)的请求策略如下:
客户端发起请求,如果有返回,处理并立即重新请求。(即保持始终有一个活动请求)
服务端接受到请求后,如果没有消息就保持连接不响应,直到有消息传来或超过N秒才返回。
长轮询的优势是,如果没有消息,客户端N秒才会有一次请求。
如果有消息,也会立即发送到客户端。(如果刚好回应完一个请求时有新消息... 还是有一定延时)
与iframe + script方式的长连接相比,它实现更简单,也不会在浏览器下显示“正在加载”信息。
按个人理解,使用带部分缓冲的长轮询能减少服务器开锁
即有新消息并不立即返回,而是等待一定时间,以免消息频繁时过多轮询。