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); }
/// <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); }
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); }
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; } }