README.md 1.4 KB

连接实现类

先实现 tcp 和 websocket 方式的线路连接。

数据结构

id 号为 0 表示不需要回应的消息 id 号大于 65500 为内部使用。

如何验证合法性

建立连接后发送第一个数据包,包括下面的内容:

id(65502)+proto(string)+version(uint8)+option(byte)+channel(string)+auth([]byte)

这个数据包必须是除混淆包(如果有的话)之后的第一个包,如果解析不成功则直接断开连接。 proto 的字符长度不能超过 255 option 选项,目前只使用最低位,如果为 1 表示启用数据压缩。是否启用数据压缩由客户端决定,如果客户端不支持数据压缩,那就无法启用。 channel 的字符长度不能超过 65535 auth 对应的是应用层的认证,如果没有的话可以为空,具体的认证方式由应用层决定。 auth 的数据结构由应用层自己决定。

Ping

id(uint16)

请求包

id(uint16)+cmdLen(uint8)+cmd(string)+option(byte)+data([]byte)

option 选项,如果不支持压缩的功能,则选项字节不需要。 目前只使用最低位,如果为 1 表示当前数据压缩。

响应包

id(uint16)+state(uint8)+option(byte)+data([]byte)

其中 state 字节的最高位 1,需要 &0x7F 处理。

option 选项,如果不支持压缩的功能,则选项字节不需要。 目前只使用最低位,如果为 1 表示当前数据压缩。