我正在尝试使用img标签从同一主机请求10个流,但是最多只能有六个,但是如果我将ip地址与主机名结合使用,它确实可以工作。
以下是我使用的html。
<div class="container-fluid">
<h1> Streams </h1>
<div class="row">
<div *ngFor="let idx of streams" class="col-md-3">
<img [src]="idx" alt="">
<br/>
</div>
</div>
</div>
可行的解决方案: 如果我将IP地址与主机名结合使用,则可以使用。
streams = [
'http://jetson1.local:8085/api/stream/accc8ee8f2c5',
'http://jetson1.local:8085/api/stream/bcad28d47b1c',
'http://jetson1.local:8085/api/stream/4447cc9d2a8714',
'http://jetson1.local:8085/api/stream/0013e2fa6841',
'http://192.168.51.76:8085/api/stream/48ea63a53318',
'http://192.168.51.76:8085/api/stream/0013e2fa67dc',
'http://192.168.51.76:8085/api/stream/08eded8744a1',
'http://192.168.51.76:8085/api/stream/9c14633240be',
'http://192.168.51.76:8085/api/stream/5804cb009268',
'http://192.168.51.76:8085/api/stream/38af290fc271'
];
这些不起作用。 如果我像下面这样定义,它将不起作用。
streams = [
'http://192.168.51.76:8085/api/stream/accc8ee8f2c5',
'http://192.168.51.76:8085/api/stream/bcad28d47b1c',
'http://192.168.51.76:8085/api/stream/4447cc9d2a8714',
'http://192.168.51.76:8085/api/stream/0013e2fa6841',
'http://192.168.51.76:8085/api/stream/48ea63a53318',
'http://192.168.51.76:8085/api/stream/0013e2fa67dc',
'http://192.168.51.76:8085/api/stream/08eded8744a1',
'http://192.168.51.76:8085/api/stream/9c14633240be',
'http://192.168.51.76:8085/api/stream/5804cb009268',
'http://192.168.51.76:8085/api/stream/38af290fc271'
];
是基于浏览器的某种限制。我在Firefox和Chrome上都尝试过。如果是这样,一个人如何克服呢?
它只是显示待处理。
这与img
标签无关。浏览器本身将它们与任何给定域的连接数限制在2到15之间(所有现代浏览器都使用6)。
如果是这样,一个人如何克服呢?
“不这样做”将是最好的解决方案。
另外,你可以从多个子域提供服务,但是你可能会遇到全局连接限制(在现代浏览器中介于10到20之间)的风险。一个其他缓解技术是使用HTTP / 2,使得多个请求可以被复用在单个连接上。最终的选择是使用websocket而不是更多的幼稚流,websocket的连接限制比HTTP高得多(200+,尽管chrome过去的限制很低,为30 /主机)