Joyit f34f9c7813 add state string 1 maand geleden
..
tcp2 66c446a12a add connect timeout in dial function 1 maand geleden
util 67aaf68838 fix 1 maand geleden
ws2 66c446a12a add connect timeout in dial function 1 maand geleden
README.md c3e78f5f89 change mod name 1 maand geleden
conn.go f34f9c7813 add state string 1 maand geleden

README.md

连接实现类

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

数据结构

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

如何验证合法性

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

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

这个数据包必须是除混淆包(如果有的话)之后的第一个包,如果解析不成功则直接断开连接。 proto 的字符长度不能超过 255 channel 的字符长度不能超过 65535 auth 对应的是应用层的认证,如果没有的话可以为空,具体的认证方式由应用层决定。 auth 的数据结构由应用层自己决定。

Ping

id(uint16)

请求包

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

响应包

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

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

频道

id(65502)+channel(string)