forked from dobyte/due
-
Notifications
You must be signed in to change notification settings - Fork 1
/
types.go
88 lines (73 loc) · 2.5 KB
/
types.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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package link
import (
"github.com/symsimmy/due/cluster"
"github.com/symsimmy/due/session"
)
type GetIPArgs struct {
GID string // 网关ID,会话类型为用户时可忽略此参数
Kind session.Kind // 会话类型,session.Conn 或 session.User
Target int64 // 会话目标,CID 或 UID
}
type IsOnlineArgs struct {
GID string // 网关ID,会话类型为用户时可忽略此参数
Kind session.Kind // 会话类型,session.Conn 或 session.User
Target int64 // 会话目标,CID 或 UID
}
type GetIdArgs struct {
GID string // 网关ID,会话类型为用户时可忽略此参数
Kind session.Kind // 会话类型,session.Conn 或 session.User
Target int64 // 会话目标,CID 或 UID
}
type Message struct {
Seq int32 // 序列号
Route int32 // 路由ID
Data interface{} // 消息数据,接收json、proto、[]byte
}
type PushArgs struct {
GID string // 网关ID,会话类型为用户时可忽略此参数
Kind session.Kind // 会话类型,session.Conn 或 session.User
Target int64 // 会话目标,CID 或 UID
Message *Message // 消息
}
type MulticastArgs struct {
GID string // 网关ID,会话类型为用户时可忽略此参数
Kind session.Kind // 会话类型,session.Conn 或 session.User
Targets []int64 // 会话目标,CID 或 UID
Message *Message // 消息
}
type BroadcastArgs struct {
Kind session.Kind // 会话类型,session.Conn 或 session.User
Message *Message // 消息
}
type DeliverArgs struct {
NID string // 接收节点。存在接收节点时,消息会直接投递给接收节点;不存在接收节点时,系统定位用户所在节点,然后投递。
CID int64 // 连接ID
UID int64 // 用户ID
Message interface{} // 消息
}
type TriggerArgs struct {
Event cluster.Event // 事件
CID int64 // 连接ID
UID int64 // 用户ID
}
type DisconnectArgs struct {
GID string // 网关ID,会话类型为用户时可忽略此参数
Kind session.Kind // 会话类型,session.Conn 或 session.User
Target int64 // 会话目标,CID 或 UID
IsForce bool // 是否强制断开
}
type MulticastDeliverArgs struct {
Kind DeliverKind
Targets []string
Message interface{} // 消息
}
type BroadcastDeliverArgs struct {
Kind DeliverKind
Message interface{} // 消息
}
const (
Gate DeliverKind = iota + 1
Center
Game
)
type DeliverKind int