6

我已经使用 c++ 创建了一个 Web Socket 服务器。我们知道 HTML 5 支持 Web Socket,并且我们有标准的 Web Socket Java Script Api 来与 Web Socket 服务器通信。我可以使用 Web Socket Api 连接到 Web Socket 服务器。由于仅新浏览器支持 Web Socket Api。

 IE          version 10    
 Chrome      version 16   
 Firefox     version 6   
 Safari      version 6.0   
 Opera       version 12.10

我还需要为以下浏览器版本提供支持。
Web Socket Api 支持的浏览器

 IE          version 7
 Chrome      version 14
 Firefox     version 4   
 Safari      version 5.1 

我听说过 node.js 和 socket.io。两者都支持

不支持 Web Socket Api 浏览器
Internet Explorer 5.5+ Safari 3+ Google Chrome 4+ Firefox 3+ Opera 10.61+

我想编写 java 脚本客户端以使用 Node.js/Socket.io 连接到 Web Sokcet 服务器

Node.js/Socket.io 是否允许我在旧版浏览器中连接?

4

1 回答 1

14

您可以使用 Socket.io 支持这些浏览器,是的,但不是专门使用 Web 套接字(因为许多浏览器版本没有 Web 套接字)。

截至 2013 年 11 月,Socket.io 支持的浏览器列表为:

桌面:

  • 互联网浏览器 5.5+
  • 野生动物园 3+
  • 谷歌浏览器 4+
  • 火狐 3+
  • 歌剧 10.61+

移动的:

  • 苹果浏览器
  • iPad Safari
  • 安卓网络套件
  • WebOs WebKit

他们通过使用各种传输来实现这种级别的支持,具体取决于浏览器的功能(同样,从 2013 年 11 月开始):

  • 网络套接字
  • Adobe® Flash® 插座
  • AJAX 长轮询
  • AJAX 多部分流式传输
  • 永远的 iframe
  • JSONP 轮询

从那时起,Socket.io被分成(至少)Socket.io 和 Engine.io,后者提供传输。Engine.io 的传输列表似乎已大大减少

  • polling: XHR / JSONP 轮询传输
  • websocket: WebSocket 传输

这似乎表明还有一种方法可以制作 Flash 套接字。

这大概反映了现代浏览器几乎普遍支持 websocket的事实。

于 2013-11-11T10:10:51.937 回答