-
Notifications
You must be signed in to change notification settings - Fork 3
/
msg.go
47 lines (41 loc) · 1.34 KB
/
msg.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package gtp
import "io"
// MsgId 消息Id
type MsgId = uint8
const (
MsgId_None MsgId = iota // 未设置
MsgId_Hello // Hello Handshake C<->S 不加密
MsgId_ECDHESecretKeyExchange // ECDHE秘钥交换 Handshake S<->C 不加密
MsgId_ChangeCipherSpec // 变更密码规范 Handshake S<->C 不加密
MsgId_Auth // 鉴权 Handshake C->S 加密
MsgId_Continue // 重连 Handshake C->S 加密
MsgId_Finished // 握手结束 Handshake S<->C 加密
MsgId_Rst // 重置链路 Ctrl S->C 加密
MsgId_Heartbeat // 心跳 Ctrl C<->S or S<->C 加密
MsgId_SyncTime // 时钟同步 Ctrl C<->S 加密
MsgId_Payload // 数据传输 Trans C<->S or S<->C 加密
MsgId_Customize = 16 // 自定义消息起点
)
// Msg 消息接口
type Msg interface {
MsgReader
MsgWriter
// Clone 克隆消息对象
Clone() Msg
}
// MsgReader 读取消息
type MsgReader interface {
io.Reader
// Size 大小
Size() int
// MsgId 消息Id
MsgId() MsgId
}
// MsgWriter 写入消息
type MsgWriter interface {
io.Writer
// Size 大小
Size() int
// MsgId 消息Id
MsgId() MsgId
}