失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 浏览器长连接|浏览器同域名请求最大并发限制

浏览器长连接|浏览器同域名请求最大并发限制

时间:2019-07-25 19:47:17

相关推荐

浏览器长连接|浏览器同域名请求最大并发限制

一、现象

我是做实时监控的时候遇到的这个问题,一开始啥也不懂,为什么明明请求都发了,我9个监控只能显示6个,剩下的就不显示了,请求一直处于pending(等待)状态。

二、原因

经过咨询前辈和疯狂百度终于搞明白了。

通俗点讲,就是浏览器的请求(以我的为例,每个浏览器不一样)每6个一起发,等这6个请求结束了开始下一组,而实时监控的视频流是一直存在的,并不像接口请求或者图片请求之类的有结束状态,所以超过6个后的请求会一直处于pending状态。

三、解决方案

那么,为什么别人的监控大屏可以一下子多画面呢?研究发现,他们采用了这种方式:官方概念这里就不讲了,就是把域名换掉代替原来的域名(注意:只是更换域名,ip是指向同一个的),这样浏览器就不会进行限制了

举个京东的例子:

京东图片域名一直是老域名 /da/jfs/t1879/131/2924301202/126044/7c7cbf5c/56f3b58fN37c1340a.jpg

比如说这张图片,你可以复制打开这个链接,把前面的二级域名的Img13换成img11、img12、img13等,发现都是可以打开的,而且一般是同一IP,有的同学说换成img8、img1、img2等打不开,这个是策略问题。这只是举个栗子。

回归正题:我自己的项目是react框架的,所以大家都知道跨域问题的代理

p1比如:我现在请求实时监控视频的url是

http://192.168.8.23:8089/video/abcd1.flv

p2然后一共有6个

http://192.168.8.23:8089/video/abcd1.flv

http://192.168.8.23:8089/video/abcd2.flv

http://192.168.8.23:8089/video/abcd3.flv

http://192.168.8.23:8089/video/abcd4.flv

http://192.168.8.23:8089/video/abcd5.flv

http://192.168.8.23:8089/video/abcd6.flv

这6个是正常的,也就是status:200

p3接下来,你想要发第7个

http://192.168.8.23:8089/video/abcd7.flv

这个请求会一直处于pending状态,因为它前面已经有6个192.168.8.23下的并发请求了。

p4怎么解决

s1你把192.168.8.23换成其他随便一个名字比如"videoSys",

像这样:http://videoSys:8089/video/abcd7.flv,注意:端口号还是要的

s2这时候你会发现还是不行,为什么呢?

因为浏览器并不知道"videoSys"指向的主机ip是多少

s3接下来你需要干一件事:C:\Windows\System32\drivers\etc,

根据这个目录找到你电脑C盘下的文件hosts,在最下面一行加上

192.168.8.23 videoSys,注意:中间有个空格

然后再试一下,就可以啦!

四、参考文章:

1、浏览器同域名请求的最大并发数限制

2、突破浏览器域名并发限制的解决方案

如果觉得《浏览器长连接|浏览器同域名请求最大并发限制》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。