旧版浏览器的Node.js / Socket.io中支持Web Socket

我已经使用c ++创build了一个Web Socket服务器,因为我们知道HTML 5支持Web Socket,并且我们有标准的Web Socket Java Script Api来与web套接字server.I能够使用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允许我在旧的浏览器中连接吗?

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

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

桌面:

  • Internet Explorer 5.5+
  • Safari 3+
  • Google Chrome 4+
  • Firefox 3 +
  • Opera 10.61以上

移动:

  • iPhone Safari
  • iPad Safari
  • Android WebKit
  • WebOs WebKit

他们通过使用各种传输方式来实现这一级别的支持,具体取决于浏览器的能力(从2013年11月起):

  • 的WebSocket
  • Adobe®Flash®套接字
  • AJAX长轮询
  • AJAX多部分stream
  • 永远Iframe
  • JSONP轮询

从那以后,Socket.io 被分成 (至less)Socket.io和Engine.io,后者提供了传输。 而且似乎Engine.io的传输列表大幅减less :

  • polling :XHR / JSONP投票传输
  • websocket :WebSocket传输

似乎表明还有一种做闪存套接字的方法。

这大概反映了一个事实: websockets在现代浏览器中几乎得到普遍支持 。