我想知道Websockets和Socket.io之间的主要区别是什么。
- 性能。(它更快吗?可扩展吗?)
- 应用程序。(它是否用于实时服务?)
- 支持。(哪一个得到更多支持?)
我还想知道哪些平台原生地支持这两个?
websocket是一些现代HTML5浏览器中的一个特殊接口。
http://caniuse.com/#search=websocket显示IE9和Android浏览器(2.1-4.2)都不支持websocket。
http://socket.io/#browser-支持索赔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显示对bug和问题的积极关注,尽管不是即时的。如果您有尝试过的代码,并且想问为什么它不起作用,那么Stack Overflow将是一个很好的提问场所。如果你想要没有任何工作的代码,试试谷歌。许多人在他们的博客上给出了一些例子。