Files
Jason Lee 0cb54beed8 Fix typo
2022-06-01 15:10:52 +08:00

1.2 KiB

title, id, slug, sidebar_position
title id slug sidebar_position
解析数据包头 how-to-parse-header /socket/protocol/header 3

我们的协议包的大小时可变长的,这里会用一个数据包头来描述数据包携带的数据类型和数据大小。

:::info 数据包头的大小是固定的 1 个字节 :::

结构

 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|  type |v|g|re.|
+-+-+-+-+-+-+-+-+
字段 长度 (bit) 说明
type 4 1 - request
2 - resopnse
3 - push
verify 1 数据是否加签标志

0 - 不加签
1 - 加签
gzip 1 数据是否使用 gzip 压缩:

1 - 压缩
0 - 不压缩
reserve 2 预留

例子

// reserve - 0, gzip - 0, verify - 0,  type - 1
0b 0000 0001

// reserve - 0, gzip - 1, verify - 0, type - 2
0b 0011 0010

// reserve - 0, gzip - 1, verify - 1, type - 3
0b 0001 0011


//  reserve - 3, gzip - 1, verify - 0, type - 3
0b 1110 0011