package main import ( "git.wanbits.io/joe/franklin/protos" "git.wanbits.io/joe/nnet" "github.com/golang/protobuf/proto" ) var ( routes = map[string]fnCSHandler{ "C_Heartbeat": on_C_Heartbeat, "C_Login": on_C_Login, "C_Logout": on_C_Logout, "C_EnterGame": on_C_EnterGame, "C_LeaveGame": on_C_LeaveGame, "C_EnterRoom": on_C_EnterRoom, "C_EnterTable": on_C_EnterTable, "C_LeaveRoom": on_C_LeaveRoom, "C_LeaveTable": on_C_LeaveTable, } ) type fnCSHandler func(nnet.ISession, *CSPacket) func dispatch(ses nnet.ISession, pkt *CSPacket) { handler, ok := routes[pkt.MsgName] if !ok { return } handler(ses, pkt) } func on_C_Heartbeat(ses nnet.ISession, p *CSPacket) { } func on_C_Login(ses nnet.ISession, p *CSPacket) { prm := &protos.C_Login{} err := proto.Unmarshal(p.Req, prm) if err != nil { return } // verify by rabbit // chech agent offline // check user status // check user kicked off // check if have logged in any agents already // check reconnect state // route to a lobby // update user location // update session id } func on_C_Logout(ses nnet.ISession, p *CSPacket) { // } func on_C_EnterGame(ses nnet.ISession, p *CSPacket) { } func on_C_LeaveGame(ses nnet.ISession, p *CSPacket) { } func on_C_EnterRoom(ses nnet.ISession, p *CSPacket) { } func on_C_EnterTable(ses nnet.ISession, p *CSPacket) { } func on_C_LeaveRoom(ses nnet.ISession, p *CSPacket) { } func on_C_LeaveTable(ses nnet.ISession, p *CSPacket) { }