文档章节

websocket 分片

逐浪人
 逐浪人
发布于 2016/08/28 08:09
字数 336
阅读 617
收藏 1
+-+-+-+-+-------+-+-------------+-------------------------------+
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-------+-+-------------+-------------------------------+
|F|R|R|R| opcode|M| Payload len |    Extended payload length    |
|I|S|S|S|  (4)  |A|     (7)     |             (16/64)           |
|N|V|V|V|       |S|             |   (if payload len==126/127)   |
| |1|2|3|       |K|             |                               |
+-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
|     Extended payload length continued, if payload len == 127  |
+ - - - - - - - - - - - - - - - +-------------------------------+
|                     Payload Data continued ...                |
+---------------------------------------------------------------+

FIN    = 0x80
OPCODE = 0x0f
一个为未分片的消息(FIN为1,opcode非0)
一个分片的消息由起始帧:
(FIN为0,opcode非0),
若干(0个或多个)帧(FIN为0,opcode为0),
结束帧(FIN为1,opcode为0)

 

分片的消息主要是为了发送大文件准备的,应该在心跳内间隔开各个消息分片。百度到过有些分片的实现是在while循环内分多次把指定长度的消息分片,更多的是根本就没有实现分片。从设计初衷来看这样设计是不合理的。
如果有发送大文件的需求,服务端实现分片消息的解析和数据粘包,分片消息中间夹杂ping pong等控制帧,可以开始发送分片消息结束发送分片即可
一定是要在心跳里边实现发送和接收这样大文件才不会影整个进程

© 著作权归作者所有

逐浪人
粉丝 7
博文 24
码字总数 7430
作品 1
烟台
技术主管
私信 提问
(websocket)协议中Ping Pong,长连接

- websocket协议,长连接;Http短连接 WebSocket如何建立连接、交换数据的细节,以及数据帧的格式。 WebSocket复用了HTTP的握手通道。具体指的是,客户端通过HTTP请求与WebSocket服务端协商升...

desaco
2018/12/25
0
0
WebScoket支持safari+chrome+firefox的规范和协议

WebScoket 规范 4.1 握手协议 websocket 是 独立的基于TCP的协议, 其跟http协议的关系仅仅是 WebSocket 的握手被http 服务器当做 Upgrade request http包处理。 websocket 有自己的握手处理...

叶建平
2012/11/23
0
0
JavaScript 工作原理之五-深入理解 WebSockets 和带有 SSE 机制的HTTP/2 以及正确的使用姿势(译)

原文请查阅这里,略有改动,本文采用知识共享署名 3.0 中国大陆许可协议共享,BY Troland。 本系列持续更新中,Github 地址请查阅这里。 这是 JavaScript 工作原理的第五章。 现在,我们将会...

tristan
2018/05/11
0
0
JavaScript是如何工作:深入探索WebSocket和HTTP/2

摘要:JavaScript是如何工作: 深入探索WebSocket和HTTP/2 原文:《JavaScript是如何工作: 深入探索 websocket 和HTTP/2与SSE +如何选择正确的路径! 作者:前端小智 Fundebug经授权转载,版权...

Fundebug
2018/12/20
0
0
JavaScript是如何工作: 深入探索WebSocket和HTTP/2

原文:《JavaScript是如何工作: 深入探索 websocket 和HTTP/2与SSE +如何选择正确的路径! 作者:前端小智 Fundebug经授权转载,版权归原作者所有。 文章底部分享给大家一套 react + socket...

Fundebug
2018/12/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 吾不好梦中插人

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @鱼豆腐233 :#今日歌曲分享# 分享My Chemical Romance的单曲《I Don't Love You》: 《I Don't Love You》- My Chemical Romance 手机党少年们...

小小编辑
今天
260
12
ss5 vpn 安装(linux版本)

1. 创建一个文件夹 /ss5 你也可以自定义,不过后续的地方需要注意自己的地址 2. 下载ss5文件(如果你的服务器没有安装wget请使用 yum -y install wget 命令安装 如果连yum都没安装自己查去)(下...

太黑_thj
今天
2
0
八、RabbitMQ的集群原理

集群架构 写在前面 RabbitMQ集群是按照低延迟环境设计的,千万不要跨越WAN或者互联网来搭建RabbitMQ集群。如果一定要在高延迟环境下使用RabbitMQ集群,可以参考使用Shovel和Federation工具。...

XuePeng77
今天
7
0
mac系统下,brew 安装mysql,用终端可以连接,navicat却连接不上?

问题: 1.报错? 2059 - Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 2): image not found 2.自己通过设置,已经把密......

写bug的攻城狮
昨天
3
0
老生常谈,HashMap的死循环

问题 最近的几次面试中,我都问了是否了解HashMap在并发使用时可能发生死循环,导致cpu100%,结果让我很意外,都表示不知道有这样的问题,让我意外的是面试者的工作年限都不短。 由于HashMap...

群星纪元
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部