WebSockets 和 Socket.io 有啥区别?
Posted
技术标签:
【中文标题】WebSockets 和 Socket.io 有啥区别?【英文标题】:What is difference between WebSockets and Socket.io?WebSockets 和 Socket.io 有什么区别? 【发布时间】:2018-06-12 01:36:34 【问题描述】:场景:我是 javascript 新手(有 C/C++/Java 经验),并且正在使用 NodeJS 服务器处理 React UI,其中服务器将在特定时间间隔获取显示数据的更新(说 5 秒)。服务器应该将数据推送到 React UI 以快速更新显示的数据。
竞争者:我遇到了 2 个 JS 库 Websockets(lib 是 websocket 的正确术语吗?)和 Socket.io 来实现这一目标。对我来说,它们看起来都一样。
我谷歌了吗?:是的,但是由于我对 JS 缺乏了解,我无法理解其中的区别。
问题:这2个库(libs?)有什么区别,我该如何决定哪一个更适合这里?
【问题讨论】:
你能解释一下为什么它跑题了吗? 你说的这个“Websockets”库是什么?这是对 VanillaJS 的扩展吗? Web Sockets 不是一个库,它是浏览器功能的规范,is implemented 在所有最新的主流桌面浏览器(和许多移动浏览器)中都有。 Websocket是几乎所有浏览器都支持的普通Javascript API,Socket.io是内部使用Websocket API的JS库 @Tingya:我知道。我的评论不是认真的,只是个玩笑。 【参考方案1】:场景:我是 JavaScript 新手(有 C/C++/Java 经验),并且正在使用 NodeJS 服务器处理 React UI,其中服务器将以特定间隔(比如 5 秒)获取显示数据的更新。服务器应该将数据推送到 React UI 以尽快更新显示的数据。
这就是我的做法。
竞争者:我遇到了 2 个 JS 库 Websockets(lib 是 websocket 的正确术语吗?)和 Socket.io 来实现这一点。对我来说,它们看起来都一样。
简而言之,我知道服务器和客户端之间有两种不同的通信方式:WEBSOCKET 和 SERVER-SENT EVENTS (SSE)。它们略有不同,因此强烈建议 Google 使用这两个选项来找出更适合您的选项。
Socket.io 本质上是一个帮助创建/管理 websocket 的库。想象一下,当您可以自己用 C 编写系统时,它就是您的 .NET 框架。
我谷歌了吗?:是的,但由于我对 JS 缺乏了解,我无法理解其中的区别。
这里有一些可以帮助你的链接:
上海证券交易所:
https://www.w3schools.com/html/html5_serversentevents.asp
https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events
WEBSOCKET
https://www.html5rocks.com/en/tutorials/websockets/basics/
https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications
比较
-
https://www.google.com.au/search?safe=off&ei=MmNLWuGkLsHQ0AS87J_4Bw&q=websocket+vs+sse&oq=websocket+vs+sse
问题:你能帮我理解一下 这 2 个库(库?)并帮助我确定哪个更合适 在这里?
正如我之前提到的,从技术上讲,您只提到了一个包库 (socket.io),它通过其 API 管理 websocket。我假设另一种方法是使用本机 JavaScript 方法手动完成。这取决于您选择哪一个,您一定会发现两者各有利弊。
【讨论】:
谢谢,正是我要找的答案! 别担心,我知道从任何语言开始都很难。一切顺利。 请不要把所有的文字都加粗,没有什么好的理由。将网站的字体选择留给网站。 只是因为它是题外话,我相信这并不意味着它不值得回答。 当然,但不是在 Stack Overflow,因为它不是本网站的主题。以上是关于WebSockets 和 Socket.io 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
使用 node.js、websockets 和 socket.io 创建实时聊天
带有 Node.js 和 socket.io 的 WebSockets