使用SSE浏览器连接上限限制6个问题分析,及解决方法

一·导致原因

  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个连接了,就求换其他端口。

三·关注我!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在前端中使用 SSE(Server-Sent Events)与后端通讯,可以通过以下步骤实现: 1. 在前端使用 JavaScript 创建一个新的 EventSource 对象,并传入后端 SSE 接口的 URL。 2. 在后端 SSE 接口中,使用 POST 方法向服务器发送消息,通过设置 Content-Type 为 text/event-stream,以及使用 event: 参数来指定 SSE 的事件名称。 3. 在前端的 EventSource 对象上监听指定的事件名称,当有事件发生时,触发对应的回调函数,从而实现与后端的通讯。 以下是一个简单的示例代码: 前端代码: ```javascript const eventSource = new EventSource('/sse'); // 创建 EventSource 对象 eventSource.addEventListener('message', event => { console.log('received message: ', event.data); }); eventSource.addEventListener('custom-event', event => { console.log('received custom event: ', event.data); }); ``` 后端代码: ```javascript app.post('/sse', (req, res) => { res.set({ 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive' }); // 发送消息 setInterval(() => { res.write(`event: custom-event\ndata: ${new Date()}\n\n`); }, 1000); }); ``` 以上代码中,前端通过创建 EventSource 对象来监听后端SSE 接口,后端通过设置 Content-Type 为 text/event-stream,以及使用 event: 参数来指定 SSE 的事件名称,并使用 res.write() 方法向前端发送消息。当有消息到达时,前端会触发对应的事件回调函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值