package main import ( "mongo.games.com/goserver/core/logger" "mongo.games.com/goserver/core/netlib" ) const ( GameSessionCloseHandlerName = "handler-game-close" ) type GameSessionCloseHandler struct { netlib.BasicSessionHandler } func (sfcl GameSessionCloseHandler) GetName() string { return GameSessionCloseHandlerName } func (this *GameSessionCloseHandler) GetInterestOps() uint { return 1 << netlib.InterestOps_Closed } func (this *GameSessionCloseHandler) OnSessionClosed(s *netlib.Session) { logger.Logger.Warn("GameSessionCloseHandler OnSessionClosed ", s.Id) //param := s.GetAttribute(srvlib.SessionAttributeServerInfo) //if registePacket, ok := param.(*protocol.SSSrvRegiste); ok { // if registePacket.GetType() == srvlib.GameServiceType { // sessions := srvlib.ClientSessionMgrSington.GetSessions() // for _, ss := range sessions { // gsid := ss.GetAttribute(common.ClientSessionAttribute_GameServer) // if gsid != nil && gsid.(*netlib.Session) == s { // ss.Close() // } // } // } //} return } func init() { netlib.RegisteSessionHandlerCreator(GameSessionCloseHandlerName, func() netlib.SessionHandler { return &GameSessionCloseHandler{} }) }