router.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package gm_rpc
  2. import (
  3. "leafstalk/covenant/msg"
  4. "leafstalk/covenant/pbfmsg"
  5. "leafstalk/network/cluster"
  6. "leafstalk/router/json"
  7. "leafstalk/router/protobuf"
  8. "github.com/sirupsen/logrus"
  9. )
  10. var (
  11. //MsgRouter 消息序列化及反序列化
  12. MsgRouter = json.NewProcessor()
  13. PbfRouter = protobuf.NewProcessor()
  14. )
  15. // 注册系统中有哪些需要处理的消息
  16. func init() {
  17. //MsgRouter.Register(&msg.ServerLogin{})
  18. //MsgRouter.Register(&msg.ResponseServerLogin{})
  19. // MsgRouter.Register(&msg.RouteMsg{})
  20. MsgRouter.Register(&msg.UpdateClientData{})
  21. MsgRouter.Register(&msg.ResponseUpdateClientData{})
  22. MsgRouter.Register(&msg.ClientData{})
  23. MsgRouter.Register(&msg.ResponseClientData{})
  24. MsgRouter.Register(&msg.UpdateChapter{})
  25. MsgRouter.Register(&msg.RequestChapter{})
  26. MsgRouter.Register(&msg.ResponseUpdateChapter{})
  27. MsgRouter.Register(&msg.ResponseRequestChapter{})
  28. MsgRouter.Register(&msg.UpdateSummary{})
  29. MsgRouter.Register(&msg.RequestSummary{})
  30. MsgRouter.Register(&msg.ResponseUpdateSummary{})
  31. MsgRouter.Register(&msg.ResponseRequestSummary{})
  32. MsgRouter.Register(&msg.GmPlayer{})
  33. MsgRouter.Register(&msg.ResponseGmPlayer{})
  34. MsgRouter.Register(&msg.GmAddExp{})
  35. MsgRouter.Register(&msg.ResponseGmAddExp{})
  36. MsgRouter.Register(&msg.GmAddStama{})
  37. MsgRouter.Register(&msg.ResponseGmAddStama{})
  38. MsgRouter.Register(&msg.GmUpdateRole{})
  39. MsgRouter.Register(&msg.ResponseGmUpdateRole{})
  40. MsgRouter.Register(&msg.GmAddMaterial{})
  41. MsgRouter.Register(&msg.ResponseGmAddMaterial{})
  42. MsgRouter.Register(&msg.GmUpdateChapter{})
  43. MsgRouter.Register(&msg.ResponseGmUpdateChapter{})
  44. MsgRouter.Register(&msg.GmUpdateTalent{})
  45. MsgRouter.Register(&msg.ResponseGmUpdateTalent{})
  46. MsgRouter.Register(&msg.GmPlacard{})
  47. MsgRouter.Register(&msg.ResponseGmPlacard{})
  48. MsgRouter.Register(&msg.GmUpdateElRank{})
  49. MsgRouter.Register(&msg.ResponseGmUpdateElRank{})
  50. MsgRouter.Register(&msg.GmQueryModelStart{})
  51. MsgRouter.Register(&msg.ResponseGmQueryModelStart{})
  52. MsgRouter.Register(&msg.GmDoubleAd{})
  53. MsgRouter.Register(&msg.ResponseGmDoubleAd{})
  54. MsgRouter.Register(&msg.GmIosPay{})
  55. MsgRouter.Register(&msg.ResponseGmIosPay{})
  56. MsgRouter.Register(&msg.GmQueryEndlessRank{})
  57. MsgRouter.Register(&msg.ResponseGmQueryEndlessRank{})
  58. MsgRouter.Register(&msg.GMLetter{})
  59. MsgRouter.Register(&msg.ResponseGMLetter{})
  60. MsgRouter.Register(&msg.GmGetGuide{})
  61. MsgRouter.Register(&msg.ResponseGmGetGuide{})
  62. MsgRouter.Register(&msg.GmSetGuide{})
  63. MsgRouter.Register(&msg.ResponseGmSetGuide{})
  64. MsgRouter.Register(&msg.GmDelRank{})
  65. MsgRouter.Register(&msg.ResponseGmDelRank{})
  66. MsgRouter.Register(&msg.RedeemGoodsIs{})
  67. MsgRouter.Register(&msg.ResponseRedeemGoodsIs{})
  68. PbfRouter.Register(&pbfmsg.ServerLogin{})
  69. PbfRouter.Register(&pbfmsg.ResponseServerLogin{})
  70. PbfRouter.Register(&pbfmsg.RouteMsg{})
  71. PbfRouter.Register(&pbfmsg.ResponseRouteMsg{})
  72. PbfRouter.Register(&pbfmsg.NewClientToken{}) //
  73. PbfRouter.SetHandler(&pbfmsg.RouteMsg{}, handleRouteMsg)
  74. }
  75. // handleRouteToPlayer2
  76. func handleRouteMsg(args []interface{}) {
  77. //获取世界服务器,发送过去
  78. request := args[0].(*pbfmsg.RouteMsg)
  79. a := args[1].(*cluster.ServerAgent)
  80. var msg interface{}
  81. var err error
  82. if len(request.MsgId) > 0 {
  83. msg, err = MsgRouter.Unmarshal3(request.MsgId, request.Data)
  84. } else {
  85. msg, err = MsgRouter.Unmarshal(request.Data)
  86. }
  87. if err != nil {
  88. logrus.Warnf("unmarshal message error: %v", err)
  89. return
  90. } else {
  91. logrus.WithField("from", "handleRouteMsg").Infoln(msg)
  92. }
  93. err = MsgRouter.Route(msg, a)
  94. if err != nil {
  95. logrus.Warnf("route message error: %v", err)
  96. return
  97. }
  98. }