SSE基于HTTP协议,ws
需要一次HTTP升级。
对于一个小用户群,我理解,WebSocket比SSE好得多。
我担心的是,对于10,000个用户的聊天系统来说,会有多大的区别。这里的主要问题是:
对于WebSocket,我将不得不运行一个10,000个连接的循环,以便在每次收到新消息时发出消息。
对于SSE,没有循环,只有一个服务器发送的事件,会将数据流传输给10,000个用户。
对我来说,从纸面上看,SSE最适合这么大的数量,特别是当连接的客户端数量将不断增加到20,000,100,000时。没有为每个新消息运行10,000值循环。
实际上也是真的吗?我试着搜索WebSocket与SSE的一些性能基准测试,但找不到任何。
请确认SSE是否比WebSocket具有更好的性能和更低的服务器资源利用率,以向如此大的数量发送/流式传输消息。的用户?
2条答案
按热度按时间qcuzuvrc1#
因为WebSocket协议必须解码/编码数据,所以广播sse更快。你必须循环它们两个。但是如果你使用sse,你应该用post协议发送数据,这比WebSocket慢。
6kkfgxo02#
下面是一篇WebSockets与EventSource(服务器发送的事件)的基准测试和比较:
https://www.timeplus.com/post/websocket-vs-sse
TLDR是,不是一个很大的区别,优先考虑您的应用程序的功能需求。