程序员

websocket 探究

2018-09-27  本文已影响6人  Jinwong

1. websocket 是什么

Html开始提供一种浏览器与服务器进行全双工通信的网络技术,属于应用层协议。它基于TCP传输协议,并复用Http的握手通道

2. 优点

3. 连接过程

WebSocket协议是基于TCP协议上的独立的通信协议,在建立WebSocket通信连接前,需要使用HTTP协议进行握手,从HTTP连接升级为WebSocket连接。浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

WebSocket定义了两种URI格式, “ws://“和“wss://”,类似于HTTP和HTTPS, “ws://“使用明文传输,默认端口为80,”wss://“使用TLS加密传输,默认端口为443。

连接过程如下:

4. 数据帧格式

Websocket在通信的最小单位为帧,由一个或者多个帧组成一条完整的消息。
发送端,将消息切割成多个帧,并发给服务端;接收端,接收消息帧,并将关联的帧重新组装成完整的消息。

当WebSocket的接收方收到一个数据帧时,会根据FIN的值来判断,是否已经收到消息的最后一个数据帧

FIN=1表示当前数据帧为消息的最后一个数据帧,此时接收方已经收到完整的消息,可以对消息进行处理。FIN=0,则接收方还需要继续监听接收其余的数据帧。

此外,opcode在数据交换的场景下,表示的是数据的类型。0x01表示文本,0x02表示二进制。而0x00比较特殊,表示延续帧(continuation frame),顾名思义,就是完整消息对应的数据帧还没接收完。

上一篇 下一篇

猜你喜欢

热点阅读