コード例 #1
0
ファイル: Hall.cs プロジェクト: QiuYulong/ChatServer
        /* Remove user from room. when last user leave, room will be removed too
         * 'public' room always exist.
         * */
        public void RemoveUserFromRoom(IUser user)
        {
            if (userMap[user] == nullRoomName)  //user not in any room.
                return;

            string roomname = userMap[user];
            roomMap[roomname].Remove(user);
            userMap[user] = nullRoomName;

            RoomBroadcast(roomname, "\r\n<= *user has left chat: "+user.GetStatus().UserName+"\r\n=> ");
            user.SendToClient("\r\n<= *user has left chat: " + user.GetStatus().UserName + " (**this is you)\r\n");

            //when last user leave
            if (roomMap[roomname].Count == 0 && roomname != publicRoomName)
            {
                RemoveRoom(roomname);
            }
        }