gpt4 book ai didi

websocket - socket.io - XHR 轮询与 flashsocket 和 websocket

转载 作者:行者123 更新时间:2023-12-02 07:40:26 25 4
gpt4 key购买 nike

我使用node.js和socket.io。我的 socket.io 连接速度有问题。在 Internet Explorer 和 Opera 中,我遇到连接速度问题。 - 当我使用 flashsocket 或 websocket 时。当我使用传输轮询模式时,XHR 连接速度很快 - 在所有浏览器(IE、FF、Chrome、Opera)中。

传输模式 - XHR-polling 和 flash/websocket 之间有什么区别?最好的交通方式是什么? socket.io如何优化连接速度?

感谢您的建议!

最佳答案

如果不同网络浏览器之间的连接速度随着时间的推移有所不同,我会感到惊讶,但您会在 Internet Explorer 和 Opera 中看到初始连接延迟的原因是原生 WebSocket 支持不可用因为它默认被禁用。因此,如果您选择 FlashSocket,则在建立连接之前需要下载额外的 Flash 对象(SWF 文件)。

WebSockets 在 IE10 中引入,在 Opera 中可用,但默认情况下禁用。

What is the difference between the mode of transport - XHR-polling and flash / websocket?

  • XHR 轮询 - 请参阅 http://en.wikipedia.org/wiki/Push_technology#Long_polling
  • FlashSocket 连接 - 使用 Flash Socket 对象建立与 WebSocket 服务器的连接并使用 WebSocket 协议(protocol)进行通信。这意味着 Flash 和 JavaScript 之间存在交互,也意味着需要下载额外的 Flash 对象(SWF 文件)。

What is the best mode of transportation?

适用于任何本身支持它的 Web 浏览器(Chrome、Firefox、Safari)的 WebSocket。如果 Flash 对象(SWF 文件)位于浏览器缓存中,则连接速度应该很快。如果不是的话就会有延迟。 XHR 长轮询是一个很好的解决方案,可以跨浏览器工作,但也有缺点:

  • 在轮询请求之间显示的数据可能已过时(陈旧)。
  • 与 WebSocket 使用的单个 TCP 连接相比,这是一种效率较低的连接方法,因为 HTTP 长轮询使用多个连接来模拟双向功能
  • HTTP 有一定的开销,这意味着会根据请求以及每个后续请求发送额外的 header 信息。

How to optimize the connection speed is socket.io?

(我对 socket.io 还很陌生,这只是一个建议)

我会查看 configuring Socket.io docs并查看是否可以根据正在连接的浏览器有条件地设置transport。根据您的经验,这可能是:

  • Chrome、Firefox、Safari - WebSocket
  • IE、Opera - XHR 轮询

关于websocket - socket.io - XHR 轮询与 flashsocket 和 websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8801014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com