WebSocket

320 阅读3分钟

WebSocket、长轮询,短轮询、tcp、udp、npm的protoo、npm的events、npm的debug、、 juejin.cn/post/684490…

juejin.cn/post/684490…

juejin.cn/post/687630…

juejin.cn/post/684490…

www.zhihu.com/question/20…

juejin.cn/post/688293…

juejin.cn/post/684490…

juejin.cn/post/684490…

juejin.cn/post/684490…

讲到socket与 websocket 首先要讲软件通信过程 软件通信有七层结构(osi模型)中由协议套协议最终组成最高级应用层协议(http等等),下三层结构偏向与数据通信,上三层更偏向于数据处理,中间的传输层则是连接上三层与下三层之间的桥梁,每一层都做不同的工作,上层协议依赖与下层协议。

七层结构的最主要功能就是帮助不同系统的主机在不同的网络中进行数据传输。

数据传输层:tcp、udp协议,tcp协议依赖互联网协议(ip协议)。

socket在第五层会话层,它并不是一个协议,而是一组接口(api),更是一个规范,为了方便使用底层协议而存在的一种抽象层。 websocket,http 。。等协议都是应用层协议(更面向于用户),依赖于传输层tcp协议。

websocket 在进行通信时,使用了http进行一次握手,数据传输使用tcp通道传输

socket更像是一种网络编程的概念,是抽象出来的。

虽然名字很像,但是也有区别 两台机器需要进行通信就需要进行socket连接,进行socket连接就需要依赖底层tcp协议,tcp协议又依赖于ip协议来找寻网络中的主机。找到了主机后,根据端口号( TCP 、UDP 地址)与应用程序进行通信。 对用户来说可以直接使用socket,根据参数让它去符合不同的协议进行通信。

建立tcp连接进行三次握手: client向server发送请求报文,server回复ack报文并分配资源,client发送报文并分配资源,连接建立。

断开tcp连接进行四次握手:

双方都有可能发起断开连接的请求。

假如由client发起 一个 断开连接的请求,server端接收到了请求 并且回复报文,这时client继续等待server的报文,然后server又发送了一个报文,准备关闭连接了,client接收到了这个报文,它又向server发送了一个报文(client关闭链接),server接收到之后就关闭了连接,client没有收到回复则关闭连接。

由于tcp是面向链接的,所以只能用于端到端的通讯。

tcp是可靠的连接,udp是不可靠的连接

  • tcp要建立起连接了之后才可以发送数据
  • udp不需要建立连接就可以发送数据

webSocket:

WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。一开始的握手需要借助HTTP请求完成。

目的:即时通讯,替代轮询

HTTP协议是非持久化的,单向的网络协议,在建立连接后只允许浏览器向服务器发出请求后,服务器才能返回相应的数据。当需要即时通讯时,通过轮询在特定的时间间隔(如1秒),由浏览器向服务器发送Request请求,然后将最新的数据返回给浏览器。这样的方法最明显的缺点就是需要不断的发送请求,而且通常HTTP request的Header是非常长的,为了传输一个很小的数据 需要付出巨大的代价,是很不合算的,占用了很多的宽带

缺点:会导致过多不必要的请求,浪费流量和服务器资源,每一次请求、应答,都浪费了一定流量在相同的头部信息上

www.cnblogs.com/zyy1688/p/1…

www.sohu.com/a/322257372…

juejin.cn/post/684490…

juejin.cn/post/684490…

juejin.cn/post/684490…

juejin.cn/post/684490…

juejin.cn/post/684490…

juejin.cn/post/684490…

juejin.cn/post/685457…

mp.weixin.qq.com/s?__biz=MzU…

juejin.cn/post/685457…

通信协议:zhuanlan.zhihu.com/p/357438496

juejin.cn/post/698805…

juejin.cn/post/684490…

juejin.cn/post/684490…

juejin.cn/post/685740…

juejin.cn/post/694505…

juejin.cn/post/702096…