一·导致原因
1.浏览器并行连接数限制
关于 浏览器限制SSE 连接为 6 个的问题,这通常是由于浏览器对同一域下的并行连接数进行限制所致。根据 HTTP/1.1 规范,同一域下的并行连接数限制为 6 个。因此,在使用 SSE 时,如果同时建立了多个连接,可能会导致连接失败或延迟
2.为什么会出现并行连接数为6个?(例子说明 :HTTP/1.1,同个域下)
如:如网页中有 10 个 http1.1需要请求加载,它们都来自同一个域名下,那么浏览器就会将这 10 个请求分成若干批次,每次只处理 6 个请求,直到所有请求都完成为止。这样可以避免因同时处理过多的请求而导致的网络延迟和性能问题。
二·解决方案
1.升级为HTTP2.0
方法:要解决浏览器限制HTTP1.1连接为6个的问题可以将sse的协议升级为HTTP 2.0 ,HTTP2.0 同一时间内的最大连接数由服务器和客户端之间协商默认为 100个(可根据需求调整)。
(1).升级为http2.0需要安全证书,而安全证书的使用需依赖于域名,证书与域名都需要马尼
(2).jdk可生成默认的安全证书,这个安全证书使用就不需要依赖于域名,也是免费的,不过浏览器不信任这个证书,每次访问的时候都需要设置信任该网站(用户体验不好)
2.依旧使用HTTP1.1(开启多端口)
一个端口号只能连接6个,配置100个端口就可以连接600个,所以后端可放开多个端口,映射到前端一个端口,前端记录每个端口的连接情况,当一个端口已经有6个连接了,就求换其他端口。