/// <summary> /// Connects the game network client to the specified address. /// </summary> /// <param name="address"></param> public void Connect(ConnectionAddress address) { if (Agent == null) { Agent = new NetworkAgent(NetworkAgentRoleEnum.Client, GameServerConfiguration.ApplicationID, address.Port); // Refresh event hooks Agent.OnConnected -= RaiseOnAgentConnectedEvent; Agent.OnDisconnected -= RaiseAgentOnDisconnectedEvent; Agent.OnDisconnecting -= RaiseAgentOnDisconnectingEvent; Agent.OnConnected += RaiseOnAgentConnectedEvent; Agent.OnDisconnected += RaiseAgentOnDisconnectedEvent; Agent.OnDisconnecting += RaiseAgentOnDisconnectingEvent; } else { Agent.Port = address.Port; } Agent.Connect(address.IPAddress); }
private async void ConnectToServerAsync(object sender, JavascriptMethodEventArgs e) { AuthorizationTypeEnum response = AuthorizationTypeEnum.Unknown; ConnectionAddress serverAddress = new ConnectionAddress { IPAddress = e.Arguments[0], Port = (int)e.Arguments[1] }; await TaskEx.Run(() => { // Authorize with master server for the specified server. response = WebUtility.RequestClientAuthorization( serverAddress.IPAddress, serverAddress.Port, WinterEngineService.ActiveUserProfile.UserName, WinterEngineService.ActiveUserProfile.ActiveAuthorizationTokenGUID); if (response == AuthorizationTypeEnum.Success) { WinterEngineService.NetworkClient.Connect(serverAddress); } }); if(response != AuthorizationTypeEnum.Success) { AsyncJavascriptCallback("ConnectToServer_Callback", (int)response); } }