如何实现React + axios的长轮询

Mak*_*aus 13 javascript websocket reactjs axios

我正在使用React + axios与客户端的API通信.我是JavaScript的新手.

我如何实现长轮询,以便在网页上接近实时更新?

当后端是JSON REST API时,是否有更好的方法在页面上进行实时更新?我应该考虑使用WebSockets或服务器端事件或长轮询是否正常?

小智 2

对于您的用例,还有另一种可能更好的方法:服务器发送的事件。

简而言之,SSE 是从客户端到服务器的简单 GET 请求 - 只不过服务器在处理完请求后不会关闭连接。相反,HTTP 连接保持打开状态,服务器能够多次将数据写入客户端,这些数据是实时出现的。

有关 SSE 与 Websockets 比较的更多信息,请阅读 Alex Recarey在 SO 中对“ WebSockets vs. Server-Sent events/EventSource ”的回答。