-
Notifications
You must be signed in to change notification settings - Fork 7
/
clientevent_handler.go
54 lines (44 loc) · 1.49 KB
/
clientevent_handler.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
package server
import (
"net"
"github.com/liasece/micserver/connect"
"github.com/liasece/micserver/msg"
"github.com/liasece/micserver/server/gate/base"
"github.com/liasece/micserver/util"
)
// 客户端事件处理
type clientEventHandler struct {
server *Server
gateHook base.GateHook
}
// HookGate 设置网关事件监听者,如果本服务没有启用网关,将不会收到任何事件
func (handler *clientEventHandler) HookGate(gateHook base.GateHook) {
handler.gateHook = gateHook
}
// OnAcceptClientConnect 当接收一个客户端的TCP连接时调用
func (handler *clientEventHandler) OnAcceptClientConnect(conn net.Conn) {
if handler.gateHook != nil {
handler.gateHook.OnAcceptClientConnect(conn)
}
}
// OnNewClient 当新增了一个客户端连接时调用
func (handler *clientEventHandler) OnNewClient(client *connect.Client) {
moduleType := util.GetModuleIDType(handler.server.moduleid)
client.SetBind(moduleType, handler.server.moduleid)
if handler.gateHook != nil {
handler.gateHook.OnNewClient(client)
}
}
// OnCloseClient 当关闭了一个客户端连接时调用
func (handler *clientEventHandler) OnCloseClient(client *connect.Client) {
if handler.gateHook != nil {
handler.gateHook.OnCloseClient(client)
}
}
// OnRecvClientMsg 当收到了一个客户端消息时调用
func (handler *clientEventHandler) OnRecvClientMsg(
client *connect.Client, msgbin *msg.MessageBinary) {
if handler.gateHook != nil {
handler.gateHook.OnRecvClientMsg(client, msgbin)
}
}