websocket 会被挂起的 http 请求阻塞吗?
Posted
技术标签:
【中文标题】websocket 会被挂起的 http 请求阻塞吗?【英文标题】:Could a websocket become blocked by pending http requests? 【发布时间】:2014-05-28 19:20:21 【问题描述】:其他帖子和本网站清楚地表明,浏览器可能有待处理的连接数是有限制的:
http://www.browserscope.org/?category=network
How many concurrent AJAX (XmlHttpRequest) requests are allowed in popular browsers?
我的问题是,这会如何影响 websockets? 6 个待处理的 http 请求会阻止来自服务器的消息吗?如果是这样,是否有可以避免这种情况的端口配置?
请原谅我对所有这些网络的无知。我非常关注 JS,我们的 websocket 使用很关键。
谢谢你, 回复
【问题讨论】:
【参考方案1】:没有。
WebSocket 是一个持久连接,只要您不离开,它就会一直保持连接。
每个浏览器都有自己的连接限制,如果有太多正在进行的连接,可能会延迟或暂时阻塞 WebSocket 连接,但是一旦建立连接,就不会因此阻塞任何消息。
【讨论】:
【参考方案2】:它可能会阻塞,但可能还有许多其他原因。
尝试减少请求数量。如果还是有问题,那么阻塞的原因在别处。
一旦我在 php/Symfony2 中遇到问题,当挂起的请求由于会话锁定而阻塞任何其他连接时。
【讨论】:
哇哦。感谢您的回复,尤其是对您过去问题的参考。但是我们能否澄清一下您的连接之一是网络套接字? 不,它是长轮询 ajax。尽管如此,您需要在不同条件下测试代码以找出问题的根源在哪里。并且 websocket 连接开始作为正常的 HTTP 请求。以上是关于websocket 会被挂起的 http 请求阻塞吗?的主要内容,如果未能解决你的问题,请参考以下文章