github.com/lianghucheng/zrddz@v0.0.0-20200923083010-c71f680932e2/src/login/internal/handler.go (about) 1 package internal 2 3 import ( 4 "game" 5 "msg" 6 "reflect" 7 8 "github.com/name5566/leaf/gate" 9 ) 10 11 func init() { 12 handler(&msg.C2S_WeChatLogin{}, handleC2SWeChatLogin) 13 handler(&msg.C2S_TokenLogin{}, handleC2STokenLogin) 14 handler(&msg.C2S_UsernamePasswordLogin{}, handleC2SUsernamePasswordLogin) 15 } 16 17 func handler(m interface{}, h interface{}) { 18 skeleton.RegisterChanRPC(reflect.TypeOf(m), h) 19 } 20 21 func handleC2SWeChatLogin(args []interface{}) { 22 // 收到的 C2S_WeChatLogin 消息 23 m := args[0].(*msg.C2S_WeChatLogin) 24 // 消息的发送者 25 a := args[1].(gate.Agent) 26 // login 27 game.ChanRPC.Go("WeChatLogin", a, m) 28 } 29 30 func handleC2STokenLogin(args []interface{}) { 31 // 收到的 C2S_TokenLogin 消息 32 m := args[0].(*msg.C2S_TokenLogin) 33 // 消息的发送者 34 a := args[1].(gate.Agent) 35 // login 36 game.ChanRPC.Go("TokenLogin", a, m) 37 } 38 39 func handleC2SUsernamePasswordLogin(args []interface{}) { 40 m := args[0].(*msg.C2S_UsernamePasswordLogin) 41 a := args[1].(gate.Agent) 42 // login 43 game.ChanRPC.Go("UsernamePasswordLogin", a, m) 44 }