default_msg.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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.DebugF("receive SSGetServerCompetitionAck msg=%v", msg)
  31. model2.CompetitionMag.DoUpdateCompetitionInfoFromDB(msg)
  32. })
  33. //social通知game当前在线的玩家数量
  34. serverproto.Handle_GAME_SSPlayerOnlineNumNtf = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
  35. msg := ev.Msg().(*serverproto.SSPlayerOnlineNumNtf)
  36. util.DebugF("receive SSPlayerOnlineNumNtf msg=%v", msg)
  37. model2.RoleMag.PlayerOnlineNumFromSocial(msg.OnlineNum)
  38. })
  39. }