短轮询
短轮询是最简单的一种数据推送方式,客户端在固定的时间间隔(例如每隔5秒)向服务器发送请求,询问是否有更新的数据。服务器立即处理请求并返回数据,不论数据是否真的已经更新。
长轮询
长轮询是对短轮询的改进。客户端发送请求后,如果服务器端没有数据更新,服务器不立即返回响应,而是保持请求打开,直到有数据更新发生或达到一定的超时限制后,才发送响应。
虽然长轮询比短轮询减少了请求次数,但长时间的TCP连接保持会占用服务器资源,尤其是在并发连接数非常高的场景下。
长连接
WebSocket提供了一种在单个连接上进行全双工通信的方式。一旦WebSocket连接建立,客户端和服务器就可以在这个连接上自由地发送数据,直到任一方主动关闭连接。