default_msg.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package msg
  2. import (
  3. "rocommon"
  4. "rocommon/util"
  5. "roserver/baseserver/model"
  6. model2 "roserver/game/model"
  7. "roserver/serverproto"
  8. )
  9. func init() {
  10. serverproto.Handle_GAME_Default = func(ev rocommon.ProcEvent) {
  11. //todo...
  12. switch e := ev.Msg().(type) {
  13. case *serverproto.ClientClosedACK:
  14. //处理客户端断开连接操作
  15. model2.RoleMag.KickFromGate(e.Id, e.ServiceId)
  16. //直接回复可以使用ServiceReplay,后续通过其他服务器处理的话需要调用接口ReplayGate
  17. //model.ServiceReplay(ev, ack)
  18. case *rocommon.SessionClosed: //服务器间断开连接
  19. util.InfoF("rocommon.SessionClosed Server Closed msg=%v", e)
  20. //只处理gate端口操作
  21. if e.CloseSId != "" {
  22. //model2.RoleMag.GateCloseKickRole(e.CloseSId)
  23. //添加了服务器之前的断线重连后,无法设置回在线状态,所以这边不做离线处理
  24. }
  25. }
  26. }
  27. //获取当前已经开启的赛季ID(from db)
  28. serverproto.Handle_GAME_SSGetServerCompetitionAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  29. msg := ev.Msg().(*serverproto.SSGetServerCompetitionAck)
  30. util.ErrorF("receive SSGetServerCompetitionAck msg=%v", msg)
  31. model2.CompetitionMag.DoUpdateCompetitionInfoFromDB(msg)
  32. if msg.TowerInfo != nil {
  33. if model2.TowerMag != nil {
  34. model2.TowerMag.DoUpdateTowerInfoFromDB(msg)
  35. }
  36. }
  37. })
  38. //social通知game当前在线的玩家数量
  39. serverproto.Handle_GAME_SSPlayerOnlineNumNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  40. msg := ev.Msg().(*serverproto.SSPlayerOnlineNumNtf)
  41. util.DebugF("receive SSPlayerOnlineNumNtf msg=%v", msg)
  42. model2.RoleMag.PlayerOnlineNumFromSocial(msg.OnlineNum)
  43. })
  44. }