早期的很多网站为具备数据推送能力,所在用的技术基本都是HTTP轮询
轮询是由由客户端每隔一段时间(如每隔5s)向服务器发出HTTP请求,服务端接收到请求后向客户端返回最新的数据。

客户端的轮询方式一般为短轮询长轮询

  • 短轮询
    一般是由客户端每隔一段时间(如每隔5s)向服务器发起一次普通 HTTP 请求。服务端查询当前接口是否有数据更新,若有数据更新则向客户端返回最新数据,若无则提示客户端无数据更新。
  • 长轮询
    一般是由客户端向服务端发出一个设置较长网络超时时间的 HTTP 请求,并在Http连接超时前,不主动断开连接;待客户端超时或有数据返回后,再次建立一个同样的Http请求,重复以上过程
    例如:
    客户端 向 服务端 发起Http请求,并且设置了超时时间为30秒;
    如果30秒内 服务端 有数据变化,则将数据传递给 客户端 ,并主动断开连接;
    如果没有数据更新,待 客户端 超时后会主动断开连接,此后客户端将重新建立一个新的Http连接,并重复上述过程。

ios 轮训接口 轮询接口意义_长轮询

以上两种轮询方式也带来了很明显的缺点

  • 首先,客户端需要不断的向服务器发出请求,在消耗较多客户端资源的情况下,服务端并不一定有新的数据下发;
  • 其次,HTTP协议请求与回复消息中,需包含较长的头部信息,其中真正有效的数据有可能只占较小的一部分,带来较多的带宽资源消耗。
  • 另外,若服务端在同一时间存在连续频繁的数据变化(例如:聊天室场景中),客户端获知数据更新相对较慢(可能存在时间的滞后性)无法保证客户端的用户体验。