【发布时间】:2013-08-20 21:40:35
【问题描述】:
我想知道 Websockets 和 Socket.io 之间的主要区别是什么。
- 性能。(它更快吗?可扩展?)
- 应用程序。 (它用于实时服务吗?)
- 支持。 (哪一个得到更多支持?)
我也想知道哪些平台原生支持这两个?
【问题讨论】:
标签: android websocket socket.io
我想知道 Websockets 和 Socket.io 之间的主要区别是什么。
我也想知道哪些平台原生支持这两个?
【问题讨论】:
标签: android websocket socket.io
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有更优雅的降级。
关于您的具体问题:
性能 - 由于 socket.io 尝试使用 websocket,因此速度问题并不那么重要,但问题更多的是当有人没有 websocket 时该怎么办。在这种情况下,socket.io 作为尝试各种方法的抽象,更加灵活,如果您愿意在应用程序中允许,可以使用较旧或较慢的方法。
应用程序——它们对于“聊天”风格的系统和实时传递数据都很有用。 socket.io 的作者声称比 websocket 有额外的功能,见http://socket.io/#faq
支持 - 由于 websocket 在浏览器中,因此没有什么可支持的。相比之下,socket.io 是一个开源库,https://github.com/learnboost/socket.io/issues 的问题页面显示了对错误和问题的积极关注,尽管不是即时的。如果您有尝试过的代码,并想问为什么它不起作用,Stack Overflow 将是一个很好的提问地方。如果您想要代码,无需任何工作,请尝试google。许多人在他们的博客上提供了示例。
【讨论】: