连载【Web通信—短轮询与长轮询(Long Polling)详解
早期的很多网站为具备数据推送能力,所在用的技术基本都是HTTP轮询。
轮询是由由客户端每隔一段时间(如每隔5s)向服务器发出HTTP请求,服务端接收到请求后向客户端返回最新的数据。
客户端的轮询方式一般为短轮询或长轮询。
一般是由客户端每隔一段时间(如每隔5s)向服务器发起一次普通 HTTP 请求。
服务端查询当前接口是否有数据更新,若有数据更新则向客户端返回最新数据,若无则提示客户端无数据更新。
优点
:简单直接,容易实现。
缺点
:请求频率无法很好确定,如果频率较高,那么就会导致服务端压力大;如果请求的频率放低,那么客户端感知变更的及时性就会降低。
一般是由客户端向服务端发出一个设置较长网络超时时间的 HTTP 请求,并在HTTP 连接超时前,不主动断开连接;待客户端超时或有数据返回后,再次建立一个同样的HTTP 请求,重复以上过程。
在上面长轮询的图中我们看到:
两个时间只是个示例,代表的是服务端hold的时间要小于客户端设置的超时时间。这也很容易理解,如果服务端的hold时间大于客户端设置的超时时间,那么大概率客户端会出现timeout异常,这是非常不优雅的。
以上两种轮询方式也带来了很明显的缺点:
📢欢迎点赞👍/ 收藏⭐/ 留言📝如有错误敬请指正!
后续持续更新中…
下一篇 【Web通信】WebSocket双向通信