Ejemplo n.º 1
0
        public void NotifyInDisConnectClient(ServerPacketData requestData)
        {
            var user = UserMgr.GetUserByNetSessionID(requestData.SessionID);

            if (user != null)
            {
                var lobbyNum = user.LobbyNumber;

                if (lobbyNum != PacketDef.INVALID_LOBBY_NUMBER)
                {
                    var packet = new PKTInternalNtfLobbyLeave()
                    {
                        LobbyNumber = lobbyNum,
                        UserID      = user.ID,
                    };

                    var packetBodyData = MessagePackSerializer.Serialize(packet);
                    var internalPacket = new ServerPacketData();
                    internalPacket.Assign(requestData.SessionID, (UInt16)SYS_PACKET_ID.NTF_IN_LOBBY_LEAVE, packetBodyData);

                    ServerNetwork.Distribute(internalPacket);
                }

                UserMgr.RemoveUser(requestData.SessionID);
            }

            LobbyServer.MainLogger.Debug($"Current Connected Session Count: {ServerNetwork.SessionCount}");
        }
        public void NotifyLeaveInternal(ServerPacketData packetData)
        {
            LobbyServer.MainLogger.Debug($"NotifyLeaveInternal. SessionID: {packetData.SessionID}");

            var ntfData = new PKTInternalNtfLobbyLeave();

            ntfData.Decode(packetData.BodyData);

            LeaveLobbyUser(packetData.SessionID, ntfData.LobbyNumber);
        }