在什么情况下,AJAX长/短轮询优于HTML5 WebSockets?

我正在为朋友构建一个小型聊天应用程序,但不确定如何及时获取信息,而这不像强制刷新页面那样手动或基本。

目前,我正在使用简单的AJAX来实现此功能,但是这样做的缺点是,在经过短计时器后会定期命中服务器。

在研究长/短轮询时,我遇到了HTML5 WebSockets。似乎很容易实现,但是我不确定是否存在一些隐藏的缺点。例如,我认为WebSockets仅受某些浏览器支持。我应该知道WebSockets还有其他缺点吗?

既然两种技术似乎都做同样的事情,那么在哪种情况下,一个人会优先使用一个?更具体地说,HTML5 WebSockets是否已使AJAX长/短轮询无效,还是有充分的理由偏爱AJAX而不是WebSockets?

卡卡西Near2020/03/24 15:02:03

对于聊天应用程序或与服务器进行持续对话的任何其他应用程序,是WebSockets最佳选择。但是,您只能WebSockets与支持它们的服务器一起使用,因此,如果无法安装所需的库,则可能会限制您使用它们的能力。在这种情况下,您将需要使用Long Polling获得类似的功能。

老丝阿飞2020/03/24 15:02:03

您已省略的一项有争议的技术是服务器发送的事件/事件源。 什么是长轮询,Websocket,服务器发送事件(SSE)和Comet?对所有这些都有很好的讨论。请记住,其中一些服务器比其他服务器更易于集成。