game_sync/gamesrv/base/srvsessmgr.go

62 lines
2.2 KiB
Go

package base
import (
"mongo.games.com/game/common"
"mongo.games.com/game/protocol/machine"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib"
"mongo.games.com/goserver/srvlib"
"mongo.games.com/goserver/srvlib/protocol"
)
var SrvSessMgrSington = &SrvSessMgr{}
type SrvSessMgr struct {
}
// 注册事件
func (this *SrvSessMgr) OnRegiste(s *netlib.Session) {
attr := s.GetAttribute(srvlib.SessionAttributeServerInfo)
if attr != nil {
if srvInfo, ok := attr.(*protocol.SSSrvRegiste); ok && srvInfo != nil {
if srvInfo.GetType() == srvlib.WorldServerType {
logger.Logger.Warn("(this *SrvSessMgr) OnRegiste (WorldSrv):", s)
} else if srvInfo.GetType() == srvlib.GateServerType {
logger.Logger.Warn("(this *SrvSessMgr) OnRegiste (GateSrv):", s)
} else if srvInfo.GetType() == srvlib.RankServerType {
logger.Logger.Warn("(this *SrvSessMgr) OnRegiste (RankSrv):", s)
} else if srvInfo.GetType() == int32(common.RobotServerType) {
logger.Logger.Warn("(this *SrvSessMgr) OnRegiste (RobotSrv):", s)
NpcServerAgentSingleton.OnConnected()
} else if srvInfo.GetType() == 10 {
logger.Logger.Warn("(this *SrvSessMgr) OnRegiste (Machine):", s)
s.Send(int(machine.DollMachinePacketID_PACKET_SMGameLinkSucceed), &machine.SMGameLinkSucceed{})
logger.Logger.Info("与娃娃机服务器连接成功\n")
}
}
}
}
// 注销事件
func (this *SrvSessMgr) OnUnregiste(s *netlib.Session) {
attr := s.GetAttribute(srvlib.SessionAttributeServerInfo)
if attr != nil {
if srvInfo, ok := attr.(*protocol.SSSrvRegiste); ok && srvInfo != nil {
if srvInfo.GetType() == srvlib.WorldServerType {
logger.Logger.Warn("(this *SrvSessMgr) OnUnregiste (WorldSrv):", s)
} else if srvInfo.GetType() == srvlib.GateServerType {
logger.Logger.Warn("(this *SrvSessMgr) OnUnregiste (GateSrv):", s)
} else if srvInfo.GetType() == srvlib.RankServerType {
logger.Logger.Warn("(this *SrvSessMgr) OnUnregiste (GateSrv):", s)
} else if srvInfo.GetType() == int32(common.RobotServerType) {
logger.Logger.Warn("(this *SrvSessMgr) OnUnregiste (RobotSrv):", s)
NpcServerAgentSingleton.OnDisconnected()
}
}
}
}
func init() {
srvlib.ServerSessionMgrSington.AddListener(SrvSessMgrSington)
}