【发布时间】:2017-08-06 03:48:12
【问题描述】:
我们正在实施一项被许多用户同时使用的服务。在高峰期,我们可以有数万人在线。
我们服务的关键部分需要重新实现,因此我们尝试想出新的方法来实现它。目前,我们基于用户交互发送简单且非常短/小的 AJAX HTTP 请求:
- Ping:我仍然活跃
- 活动:我已经完成了,请将其写入数据库
- 完成:我已经完成我的活动,所以我的请求很接近
同时,在某些情况下(十分之一),我们打开了EventSource,从中我们读取了服务器上的一些修改。
问题是这个模型是否足够好,或者是否最好打开一个 WebSocket 并通过 WebSockets 传递所有内容。
- 优势 - 对于每个用户,我们将只维护一个连接,而不是发送多个请求。
- 缺点 - 当很多人在线时,我们会保持数千个连接处于活动状态
正确实施的决定应该是什么?
注意到这个问题的答案是一样的:WebSockets protocol vs HTTP——但是我要求具体的用例。相关问题是一般性的。
【问题讨论】: