如何最大化服务器发送的事件打开连接?

问题描述 投票:0回答:2

我正在为用户构建通知服务,以获得有关其活动的通知。我只需要服务器到客户端通知(单向)。我已经探索了多种选择,例如轮询,WebSocket,SSE。因为,与Websocket不同,SSE的资源消耗较少,并且除了HTTP本身之外不需要其他协议进行通信。我选择了SSE。但是,它有一个限制。它最多可支持6个Open连接。我想它与同时访问通知的用户数有关。即;最多6个用户可以同时访问通知。

我如何设法最大化开放连接?或者使用Websocket代替SSE还是更好吗?如果我误解了这个概念,请原谅我。我很高兴知道有关这方面的一些信息。

java spring websocket notifications server-sent-events
2个回答
0
投票

您对最大连接的理解是错误的。它是关于客户端可以向主机打开的连接数(请参阅this)。每个浏览器(版本)的数量不同。

因此,当您使用Chrome并在网站上打开页面时,您可以使用最大值。 6个连接,用于从服务器检索数据。

SSE的服务器端没有限制将同一事件发送给多个用户。

注意:如果您仍然需要支持IE,那么它不支持SSE开箱即用,因此您需要一个polyfill或其他解决方案。


0
投票

正如其他答案所述,大多数浏览器可以打开大约6个HTTP / 1.x连接到同一主机。因此,如果您使用1个SSE连接,它将保留5个HTTP / 1.x连接。这仅适用于HTTP / 1.x.

使用HTTP 2.x,与同一主机的连接是多路复用的:因此,理论上,您可以根据需要同时发送任意数量的HTTP请求,或者您可以根据需要打开任意数量的SSE连接,从而绕过限制6个连接。

© www.soinside.com 2019 - 2024. All rights reserved.