对于 10,000 个用户的聊天室,websocket 和服务器发送事件 (SSE) 之间的性能差异?

Joh*_*rgo 10 websocket server-sent-events

SSE基于HTTP协议,ws需要进行一次HTTP升级。

据我所知,对于较小的用户群来说,WebSocket 比 SSE 好太多了。

我担心10000个用户的聊天系统会有多大差别。这里主要关心的是:

对于WebSocket,我必须运行 10,000 个连接的循环,以便每次收到新消息时发出一条消息。

对于SSE来说,没有循环,只有一个服务器发送的事件将数据流式传输给 10,000 个用户。

对我来说,从纸面上看,SSE 似乎最适合如此大的数量,特别是当连接的客户端数量不断增加到 20,000、100,000 时。不会为每条新消息运行 10,000 个值循环。

实际上也是如此吗?我尝试搜索一些 WebSocket 与 SSE 的性能基准,但没有找到。

请确认,SSE 是否比 WebSocket 具有更好的性能和更低的服务器资源利用率,用于向如此大的数字发送/流式传输消息。用户数?

小智 -1

为了更快地广播 sse,因为 websocket 协议必须对数据进行解码/编码。你必须循环它们。但如果你使用 sse,你应该使用比 websocket 慢的 post 协议发送数据。