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  }