Web应用程序最初是围绕客户机/服务器模型开发的,其中Web客户机始终是事务的发起者,向服务器请求数据。因此,在没有客户端首先发出请求的情况下,服务器没有机制可以独立地向客户端发送或推送数据。
HTTP 长轮询
为了克服此缺陷,Web应用程序开发人员可以实施一种称为HTTP长轮询的技术,客户端在该技术中轮询请求新信息的服务器。服务器将请求保持打开状态,直到有新数据可用为止。一旦可用,服务器就会响应并发送新信息。当客户端收到新信息时,它立即发送另一个请求,并重复该操作。这有效地模拟了服务器推送功能。
HTTP长轮询的注意事项
在开发和操作/扩展方面,使用HTTP长轮询在应用程序中构建实时交互性时需要考虑两点。
- 随着使用量的增长,您将如何协调您的实时后端?
- 当移动设备在WiFi和蜂窝网络之间快速切换或失去连接,并且IP地址更改时,长时间轮询会自动重新建立连接吗?
- 通过长时间轮询,您可以管理消息队列并追赶错过的消息吗?
- 长轮询是否可以跨多个服务器提供负载平衡或故障转移支持?
使用HTTP长轮询为服务器推送构建实时应用程序时,您必须开发自己的通信管理系统。这意味着您将负责更新,维护和扩展后端基础架构。