Exemplo n.º 1
0
        /*
         * On connection crash, makes the user offline
         */
        private static void MakeUserOffline(TcpClient connection)
        {
            uint            id           = ServerCore.GetIdByConnection(connection);
            UserData        user         = UserConnector.UpdateUserState(id, false);
            List <UserData> friendList   = UserConnector.GetFriendList(id);
            RMessage        replyMessage = new RMessage(MessageType.CHANGE_USER_STATE_REPLY, user);

            foreach (UserData friend in friendList)
            {
                ClientWorker worker = ServerCore.GetWorkerById(friend.Id);
                if (worker != null)
                {
                    ServerCore.GetWorkerById(friend.Id).SendMessage(replyMessage);
                }
            }
        }
Exemplo n.º 2
0
        /* The GetFriendList MessageHandler
         * It handles messages of CHANGE_USER_STATE_REQUEST type.
         */
        private static void ChangeUserState(RMessage message, TcpClient connection)
        {
            Console.WriteLine("ChangeUserState");
            uint            id           = ServerCore.GetIdByConnection(connection);
            UserData        user         = UserConnector.UpdateUserState(id, (bool)message.Data);
            List <UserData> friendList   = UserConnector.GetFriendList(id);
            RMessage        replyMessage = new RMessage(MessageType.CHANGE_USER_STATE_REPLY, user);

            foreach (UserData friend in friendList)
            {
                ClientWorker worker = ServerCore.GetWorkerById(friend.Id);
                if (worker != null)
                {
                    ServerCore.GetWorkerById(friend.Id).SendMessage(replyMessage);
                }
            }
            ServerCore.GetWorkerByConnection(connection).SendMessage(replyMessage);
        }