繁体   English   中英

socket.io和Node的Net模块之间的区别

[英]Difference between socket.io and Node's Net module

我最近遇到了Node的net模块,我想知道使用此模块是否等同于使用socket.io模块。 它们之间有什么区别? 谢谢!

我最近遇到了Node的net模块,我想知道使用此模块是否等同于使用socket.io模块。

不,他们甚至都不是同一件事。

节点的网络模块是基本的底层TCP和UDP接口。 它允许您建立到某个端点的TCP或UDP连接,然后通过该连接从该端点发送或接收数据。 这些是原始TCP连接。 您可以定义通信中使用的协议,数据格式和所有约定。 TCP所做的只是将您的数据从一端传送到另一端。

socket.io在网络堆栈的另一端。

socket.io
webSocket
TCP

webSocket构建在TCP之上。 它具有自己独特的连接方案,该方案以带有某些自定义标头的http连接开始,然后请求“升级”到webSocket协议。 如果服务器批准升级,则将HTTP连接开始的相同TCP套接字转换为webSocket协议。 webSocket协议具有自己独特的加密和数据格式。

Socket.io建立在webSocket协议之上(这意味着它使用webSocket协议进行通信)。 Socket.io拥有自己独特的连接方案(以http轮询开始,然后在允许的情况下切换到常规的webSocket),并且在webSocket数据帧之上构建了一个附加的数据结构,该结构定义了消息名称,数据包和其他一些家政服务。


浏览器Javascript均支持socket.io和webSocket。 浏览器Javascript不支持纯TCP或UDP连接。 因此,如果您希望与浏览器进行通信,则不会使用纯TCP。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM