3

我想知道 Websockets 和 Socket.io 之间的主要区别是什么。

  1. 性能。(它更快吗?可扩展?)
  2. 应用程序。(它用于实时服务吗?)
  3. 支持。(哪一个得到更多的支持?)

另外我想知道哪些平台本机支持这两个?

4

1 回答 1

9

socket.io是 Guillermo Rauch 的开源库。这个库试图找到某种方式在浏览器和服务器之间设置类似聊天的功能。

websocket是一些现代 HTML5 浏览器中的特殊接口。

http://caniuse.com/#search=websocket显示 IE9 和 Android 浏览器 (2.1-4.2) 都没有 websocket 支持。

http://socket.io/#browser-support声称 socket.io 将适用于 IE5.5+

虽然 socket.io 将使用 websocket(如果可用),但它也会尝试 flash,甚至轮询。所以socket.io有更优雅的降级。

至于你的具体问题:

  1. 性能 - 由于 socket.io 尝试使用 websocket,因此速度问题并不那么重要,但问题更多的是当有人没有 websocket 时该怎么办。在这种情况下,socket.io 作为尝试各种方法的抽象,更加灵活,如果您愿意在应用程序中允许,可以使用较旧或较慢的方法。

  2. 应用程序——它们对于“聊天”风格的系统和实时传递数据都很有用。socket.io 的作者声称在 websocket 上有额外的功能,见http://socket.io/#faq

  3. 支持 - 由于 websocket 在浏览器中,因此没有什么可支持的。相比之下,socket.io 是一个开源库,https://github.com/learnboost/socket.io/issues上的问题页面显示了对错误和问题的积极关注,尽管不是即时的。如果您有尝试过的代码,并且想问为什么它不起作用,Stack Overflow将是一个很好的提问地方。如果您想要代码,而无需您做任何工作,请尝试google。许多人在他们的博客上给出了例子。

于 2013-08-20T22:13:42.110 回答