本文为 WebSocket 协议的第六章,本文翻译的主要内容为 WebSocket 消息发送与接收相关内容。网络
有兴趣了解该文档以前几章内容的同窗能够见:post
为了经过 WebSocket 链接发送一条 WebSocket 消息
,终端必须遵循如下几个步骤:ui
为了接收 WebSocket 数据,终端须要监听底层网络链接。输入的数据必须经过第 5.2 节定义的 WebSocket 帧进行解析。若是收到了一个控制帧(第 5.5 节),那么这个帧必须如 5.5 节中定义的方式进行处理。若是收到的是一个数据帧,那么终端必须注意 5.2 节中的定义在操做码(帧操做码)中的数据类型。在这一帧中的“应用数据”被定义为消息的数据。若是帧中包含未分片的数据(第 5.4 节),那么就认为:一条 WebSocket 消息的数据和类型被收到了。若是帧是分片数据的一部分,那么随后的帧包含的“应用数据”连起来就是数据的格式。当经过 FIN 字段(FIN帧)表示的最后一个片断被收到时,咱们能够说:一条 WebSocket 消息的数据(由片断组装起来的“应用数据”数据组成)和类型(注意分片消息的第一帧)已经被收到了。接下来的数据帧必须是属于一条新的 WebSocket 消息。翻译
扩展(第 9 章)可能改变数据如何理解的方式,具体包括消息的内容边界。扩展,除了在“应用数据”以前添加“扩展数据”以外,也能够修改“应用数据”(例如压缩它)。code
像第 5.3 节中说的那样,服务端在收到客户端的数据帧时必须去除掩码。orm