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

Java 如何最大化服务器发送的事件打开连接?,java,spring,websocket,notifications,server-sent-events,Java,Spring,Websocket,Notifications,Server Sent Events,我正在为用户构建一个通知服务,以获得有关其活动的通知。我只需要服务器到客户端的通知(单向)。我已经探索了多种选择,比如轮询、WebSocket、SSE。因为,与Websocket不同,SSE的资源消耗更少,并且不需要HTTP本身以外的其他协议进行通信。我选择了SSE。然而,它有一个局限性。它最多可支持6个开放式连接。我认为这与并发访问通知的用户数量有关。即;最多6个用户可以同时访问通知 如何最大限度地利用开放的连接?还是使用Websocket而不是SSE更好? 如果我误解了这个概念,请原谅。 我

我正在为用户构建一个通知服务,以获得有关其活动的通知。我只需要服务器到客户端的通知(单向)。我已经探索了多种选择,比如轮询、WebSocket、SSE。因为,与Websocket不同,SSE的资源消耗更少,并且不需要HTTP本身以外的其他协议进行通信。我选择了SSE。然而,它有一个局限性。它最多可支持6个开放式连接。我认为这与并发访问通知的用户数量有关。即;最多6个用户可以同时访问通知

如何最大限度地利用开放的连接?还是使用Websocket而不是SSE更好? 如果我误解了这个概念,请原谅。
我很高兴知道一些有关这方面的信息。

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

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

SSE服务器端不限制向多个用户发送同一事件


注意:如果您仍然需要支持IE,则不支持开箱即用的SSE,因此您需要polyfill或其他解决方案

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

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

SSE服务器端不限制向多个用户发送同一事件


注意:如果您仍然需要支持IE,则不支持开箱即用的SSE,因此您需要polyfill或其他解决方案

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


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

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


使用HTTP 2.x,到同一主机的连接是多路复用的:因此,理论上,您可以在同一时间发送任意数量的HTTP请求,也可以打开任意数量的SSE连接,绕过6个连接的限制。

并非所有浏览器都支持SSE,因此您可能需要考虑这一点。但是,连接限制是针对每个客户端的,而不是针对SSE服务器端。从单个浏览器中,您可以(通常)同时打开最多6个HTTP连接。这与SSE的服务器部分无关,只要服务器接受连接,您就可以连接。并非所有浏览器都支持SSE,因此您可能需要考虑这一点。但是,连接限制是针对每个客户端的,而不是针对SSE服务器端。从单个浏览器中,您可以(通常)同时打开最多6个HTTP连接。它与SSE的服务器部分无关,只要服务器接受连接,您就可以连接。