router.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package main
  2. import (
  3. "git.wanbits.io/joe/franklin/protos"
  4. "git.wanbits.io/joe/nnet"
  5. "github.com/golang/protobuf/proto"
  6. )
  7. var (
  8. routes = map[string]fnCSHandler{
  9. "C_Heartbeat": on_C_Heartbeat,
  10. "C_Login": on_C_Login,
  11. "C_Logout": on_C_Logout,
  12. "C_EnterGame": on_C_EnterGame,
  13. "C_LeaveGame": on_C_LeaveGame,
  14. "C_EnterRoom": on_C_EnterRoom,
  15. "C_EnterTable": on_C_EnterTable,
  16. "C_LeaveRoom": on_C_LeaveRoom,
  17. "C_LeaveTable": on_C_LeaveTable,
  18. }
  19. )
  20. type fnCSHandler func(nnet.ISession, *CSPacket)
  21. func dispatch(ses nnet.ISession, pkt *CSPacket) {
  22. handler, ok := routes[pkt.MsgName]
  23. if !ok {
  24. return
  25. }
  26. handler(ses, pkt)
  27. }
  28. func on_C_Heartbeat(ses nnet.ISession, p *CSPacket) {
  29. }
  30. func on_C_Login(ses nnet.ISession, p *CSPacket) {
  31. prm := &protos.C_Login{}
  32. err := proto.Unmarshal(p.Req, prm)
  33. if err != nil {
  34. return
  35. }
  36. // verify by rabbit
  37. // chech agent offline
  38. // check user status
  39. // check user kicked off
  40. // check if have logged in any agents already
  41. // check reconnect state
  42. // route to a lobby
  43. // update user location
  44. // update session id
  45. }
  46. func on_C_Logout(ses nnet.ISession, p *CSPacket) {
  47. //
  48. }
  49. func on_C_EnterGame(ses nnet.ISession, p *CSPacket) {
  50. }
  51. func on_C_LeaveGame(ses nnet.ISession, p *CSPacket) {
  52. }
  53. func on_C_EnterRoom(ses nnet.ISession, p *CSPacket) {
  54. }
  55. func on_C_EnterTable(ses nnet.ISession, p *CSPacket) {
  56. }
  57. func on_C_LeaveRoom(ses nnet.ISession, p *CSPacket) {
  58. }
  59. func on_C_LeaveTable(ses nnet.ISession, p *CSPacket) {
  60. }