Ejemplo n.º 1
0
    public void login()
    {
        LoginMessage message = new LoginMessage();

        message.username    = username.text;
        message.password    = password.text;
        message.onResponse += (QTResponsableMessage message) => {
            LoginReplyMessage reply = (LoginReplyMessage)message;

            Debug.Log("Logged in with ID - " + reply.user.id);
        };

        ClientManager.instance.masterClient.sendMessage(message);
    }
Ejemplo n.º 2
0
        /// <summary>
        /// Uses the credentials to authenticate with the remote server.
        /// Goes to states <c>Create</c>, <c>Receive</c>, and <c>Close</c>.
        /// </summary>
        /// <returns>Time to wait till next state is run, in milliseconds.</returns>
        private int Authenticate()
        {
            ChangeStatus(QuoteProviderStatus.Authenticate);

            try
            {
                SessionKeyRequestMessage sessionKeyRequest = new SessionKeyRequestMessage(m_username);
                int length = sessionKeyRequest.GetBytes(m_buffer, 0);
                int count  = m_client.Send(m_buffer, 0, length, SocketFlags.None);

                count  = m_client.Receive(m_buffer);
                length = IPAddress.NetworkToHostOrder(BitConverter.ToInt32(m_buffer, 0));
                SessionKeyReplyMessage sessionKeyReply = (SessionKeyReplyMessage)BidMessage.Create(FunctionCodes.SessionKeyReply, m_buffer, 0, length);
                uint sessionKey = sessionKeyReply.SessionKey;

                LoginRequestMessage LoginRequest = new LoginRequestMessage(m_username, m_password, sessionKey);
                length = LoginRequest.GetBytes(m_buffer, 0);
                count  = m_client.Send(m_buffer, 0, length, SocketFlags.None);

                count  = ReceiveMessage();
                length = IPAddress.NetworkToHostOrder(BitConverter.ToInt32(m_buffer, 0));
                LoginReplyMessage loginReply = (LoginReplyMessage)BidMessage.Create(FunctionCodes.LoginReply, m_buffer, 0, length);
                m_maxHeartbeatInterval = loginReply.MaxHeartbeatInterval;

                if (m_maxHeartbeatInterval > 0)
                {
                    m_retryTimes    = 0;
                    m_readIndex     = m_writeIndex = 0;
                    m_lastReception = m_lastHeartbeat = (uint)Environment.TickCount;
                    m_runByState    = Receive;
                }
                else
                {
                    throw new Exception("Invalid login.");
                }
            }
            catch (SocketException se)
            {
                OnErrorOccurred(se, false);
                return(RetryOrGiveup(m_status));
            }
            catch (Exception ex)
            {
                OnErrorOccurred(ex, true);
                m_runByState = Close;
            }

            return(0);
        }
Ejemplo n.º 3
0
    public LoginReplyMessage loginUser(LoginMessage message)
    {
        LoginReplyMessage replyMessage = new LoginReplyMessage(message);

        UserInfo user = getUser(message.username);

        if (user == null)
        {
            replyMessage.reply = LoginReplyMessage.loginReply.NOUSER;
        }
        else if (message.password != user.password)
        {
            replyMessage.reply = LoginReplyMessage.loginReply.WRONGPASSWORD;
        }
        else
        {
            replyMessage.user  = user;
            replyMessage.reply = LoginReplyMessage.loginReply.SUCCESS;
        }

        return(replyMessage);
    }
Ejemplo n.º 4
0
    public override void handleMessage(QTMessage message)
    {
        switch (message.messageType)
        {
        case QTMessage.type.REGISTER:
            RegisterMessage registerMessage = (RegisterMessage)message;
            UserInfo        info            = new UserInfo();
            info.username    = registerMessage.username;
            info.password    = registerMessage.password;
            info.permissions = UserInfo.userPermissions.USER;

            RegisterReplyMessage replyMessage = MasterServerManager.instance.authManager.addUser(registerMessage, info);
            client.sendMessage(replyMessage);
            break;

        case QTMessage.type.LOGIN:
            LoginMessage loginMessage = (LoginMessage)message;

            LoginReplyMessage loginReplyMessage = MasterServerManager.instance.authManager.loginUser(loginMessage);
            client.sendMessage(loginReplyMessage);
            break;
        }
    }