/// <summary> /// /// </summary> /// <param name="message"></param> public void Send(AbstractRcpMessage message) { AddMessage(() => { m_rpcConnection.Send(message); }); }
/// <summary> /// /// </summary> /// <param name="client"></param> /// <param name="message"></param> private void HandleAccountConnectedLists(AuthRPCServiceClient client, AbstractRcpMessage message) { if (client.AuthState != AuthStateEnum.SUCCESS) { return; } var connectedList = (AccountConnectedList)message; Logger.Info(string.Format("AuthServiceRPC [{0}][{1}] GameAccount connected list, playerCount={2}", client.Ip, client.GameId, connectedList.ConnectedAccounts.Count)); AuthService.Instance.AddMessage(() => client.Players.AddRange(connectedList.ConnectedAccounts)); }
/// <summary> /// /// </summary> /// <param name="client"></param> /// <param name="message"></param> private void HandleGameAccountDisconnected(AuthRPCServiceClient client, AbstractRcpMessage message) { if (client.AuthState != AuthStateEnum.SUCCESS) { return; } var accountId = ((AccountDisconnected)message).AccountId; Logger.Info(string.Format("AuthServiceRPC [{0}][{1}] GameAccount disconnected accountId={2}", client.Ip, client.GameId, accountId)); AuthService.Instance.AddMessage(() => client.Players.Remove(accountId)); }
/// <summary> /// /// </summary> /// <param name="client"></param> /// <param name="message"></param> private void HandleGameStateUpdate(AuthRPCServiceClient client, AbstractRcpMessage message) { if (client.AuthState != AuthStateEnum.SUCCESS) { return; } var state = ((StateUpdateMessage)message).State; Logger.Info(string.Format("AuthServiceRPC [{0}][{1}] GameState updated to {2}", client.Ip, client.GameId, state)); client.GameState = state; AuthService.Instance.RefreshWorldList(); }
/// <summary> /// /// </summary> /// <param name="client"></param> /// <param name="message"></param> private void HandleGameIdUpdate(AuthRPCServiceClient client, AbstractRcpMessage message) { if (client.AuthState != AuthStateEnum.SUCCESS) { return; } var gameIdUpdateMessage = (IdUpdateMessage)message; AuthService.Instance.RegisterWorld(gameIdUpdateMessage.GameId, client); Logger.Info(string.Format("AuthServiceRPC [{0}] GameId updated to [{1}]", client.Ip, gameIdUpdateMessage.GameId)); client.GameId = gameIdUpdateMessage.GameId; }
/// <summary> /// /// </summary> /// <param name="client"></param> /// <param name="message"></param> private void HandleAuthentification(AuthRPCServiceClient client, AbstractRcpMessage message) { if (client.AuthState != AuthStateEnum.NEGOTIATING) { return; } var result = AuthResultEnum.FAILED; var authMessage = (AuthentificationMessage)message; if (authMessage.Password == "smarken") { client.AuthState = AuthStateEnum.SUCCESS; result = AuthResultEnum.SUCCESS; client.RemoteIp = authMessage.RemoteIp; Logger.Info(string.Format("AuthServiceRPC [{0}] Authed sucessfully", client.Ip)); } client.Send(new AuthentificationResult(result)); }
/// <summary> /// /// </summary> /// <param name="message"></param> private void OnMessage(AbstractRcpMessage message) { switch (message.Id) { case (int)MessageIdEnum.AUTH_TO_WORLD_CREDENTIAL_RESULT: if (((AuthentificationResult)message).Result == AuthResultEnum.SUCCESS) { AuthState = AuthStateEnum.SUCCESS; Logger.Info("RPCManager authentification success."); Send(new IdUpdateMessage(WorldConfig.GAME_ID)); Send(new StateUpdateMessage(GameStateEnum.ONLINE)); WorldService.Instance.AddMessage(() => { Send(new AccountConnectedList(ClientManager.Instance.ConnectedAccounts)); }); } else { AuthState = AuthStateEnum.FAILED; Logger.Error("RPCManager authentification failed : wrong credentials."); } break; case (int)MessageIdEnum.AUTH_TO_WORLD_GAME_TICKET: var ticketMessage = (GameTicketMessage)message; ClientManager.Instance.AddTicket ( ticketMessage.AccountId, ticketMessage.Name, ticketMessage.Pseudo, ticketMessage.Power, ticketMessage.RemainingSubscription, ticketMessage.LastConnectionDate, ticketMessage.LastConnectionIP, ticketMessage.Ticket ); break; } }
/// <summary> /// /// </summary> /// <param name="client"></param> /// <param name="message"></param> protected override void OnMessageReceived(AuthRPCServiceClient client, AbstractRcpMessage message) { Logger.Debug("AuthServiceRPC " + (MessageIdEnum)message.Id); }
protected override void OnMessage(AbstractRcpMessage message) { }