我们正在实现一个服务,它被许多用户在同一时间使用。在高峰时期,我们可以有数万人在线。
我们的服务的关键部分需要重新实现,因此我们试图想出新的方法来实现它。目前,我们基于用户交互发送简单且非常短/小的AJAX HTTP请求:
同时,在某些情况下(十分之一),我们打开了EventSource
,从中可以读取服务器上的一些修改。
问题是这个模型是否足够好,还是打开一个WebSocket并通过WebSocket传递一切更好。
正确实施的决策应该是什么?
值得注意的是,这个问题的答案是相同的:WebSockets协议vs HTTP-但是我要求具体的用例。有关的问题是泛泛地提出来的。
您可以实现服务,以便在超时后关闭空闲的websocket连接。这可能与EventSource
的工作方式相同,因此不会保留太多活动连接。(类似的性能特征。)
(但是如果您依赖于浏览器提供的EventSource
的自动重新连接,那么切换到WebSocket意味着您需要为重新连接的逻辑编写更多的代码。)
通常WebSocket应该具有较少的网络流量开销。但是差别有多大取决于你当前的服务是如何实现的。如果您已经通过AJAX和EventSource
优化了逻辑并压榨出了所有性能,那么使用WebSocket可能只是一个微不足道的改进。