Example #1
0
        public void NotifyInDisConnectClient(ServerPacketData requestData)
        {
            var sessionID = requestData.SessionID;
            var user      = UserMgr.GetUser(sessionID);

            if (user != null)
            {
                var roomNum = user.RoomNumber;

                if (roomNum != PacketDef.INVALID_ROOM_NUMBER)
                {
                    var packet = new PKTInternalNtfRoomLeave()
                    {
                        RoomNumber = roomNum,
                        UserID     = user.ID(),
                    };

                    var packetBodyData = MessagePackSerializer.Serialize(packet);
                    var internalPacket = new ServerPacketData();
                    internalPacket.Assign(sessionID, (Int16)PACKETID.NTF_IN_ROOM_LEAVE, packetBodyData);

                    ServerNetwork.Distribute(internalPacket);
                }

                UserMgr.RemoveUser(sessionID);
            }

            MainServer.MainLogger.Debug($"Current Connected Session Count: {ServerNetwork.SessionCount}");
        }
Example #2
0
        void SendInternalRoomLeavePacket(int roomNumber, string userID)
        {
            // 구현하기
            var packet = new PKTInternalNtfRoomLeave()
            {
                RoomNumber = roomNumber,
                UserID     = userID,
            };

            var packetBodyData = MessagePackSerializer.Serialize(packet);

            var internalPacket = new ServerPacketData();

            internalPacket.Assign("", -1, (Int16)PACKETID.NTF_IN_ROOM_LEAVE, packetBodyData);

            SendInternalRoomProcessor(false, roomNumber, internalPacket);
        }