Exemple #1
0
 Task RandamServerRequest(ServerConnectSettings settings)
 {
     return(Task.Run(async() =>
     {
         try
         {
             var start = DateTime.Now;
             using (var conn = await Connection.ConnectToServer(settings))
             {
                 while ((DateTime.Now - start) < TimeSpan.FromSeconds(1))
                 {
                     await Task.Delay(100);
                     var randam = System.Convert.ToBase64String(Random.GenBytes(1000));
                     conn.Server.Send(To(randam));
                     Message message;
                     while (!conn.PollTryReadMessage(out message, TimeSpan.FromSeconds(1)))
                     {
                         ;
                     }
                     Assert.AreEqual(randam, To(message));
                 }
             };
         }
         catch { }
     }));
 }
 public void ConnectToServer(ServerConnectSettings connectSettings)
 {
     if (connectSettings.createRoomIfNoneAvailable)
     {
         RoomOptions roomOptions = new RoomOptions();
         PhotonNetwork.JoinOrCreateRoom(connectSettings.roomName, roomOptions, new TypedLobby(connectSettings.roomName, LobbyType.Default));
     }
 }
Exemple #3
0
        public async Task Connect(ServerConnectSettings settings, CancellationToken token = default)
        {
            Disconnect();
            m_Cancellation?.Cancel();
            m_Cancellation = new CancellationTokenSource();
            token.Register(m_Cancellation.Cancel);
            m_Connection = await Connection.ConnectToServer(settings, m_Cancellation.Token);

            m_Cancellation = null;
            OnConnect?.Invoke();
            Update();
        }
Exemple #4
0
        public override async void ClientConnect(string address)
        {
            DisposeClient();

            IPAddress[] addresses = Dns.GetHostAddresses(address);
            IPAddress   ip        = null;

            foreach (var tmp in addresses)
            {
                if (tmp.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                {
                    ip = tmp;
                }
            }

            ServerConnectSettings setting;

            if (!string.IsNullOrWhiteSpace(m_RsaXmlPath))
            {
                var xml = Resources.Load <TextAsset>(m_RsaXmlPath);
                setting = ServerConnectSettings.FromXML(xml.text, new IPEndPoint(ip, m_Port));
            }
            else
            {
                setting = new ServerConnectSettings
                {
                    EndPoint = new IPEndPoint(ip, m_Port),
                };
            }
            var task = m_ClientTask = Connection.ConnectToServer(setting);

            try
            {
                var conn = await task;
                if (task == m_ClientTask)
                {
                    m_ClientConn = conn;
                    OnClientConnected?.Invoke();
                }
                else
                {
                    conn.Dispose();
                }
            }
            catch (Exception)
            {
                if (task == m_ClientTask)
                {
                    OnClientDisconnected?.Invoke();
                }
            }
        }
Exemple #5
0
        async void Connect()
        {
            try
            {
                var ep       = new IPEndPoint(IPAddress.Loopback, Port);
                var settings = ServerConnectSettings.FromXML(Resources.Load <TextAsset>("public").text, ep);
                m_Client = await Connection.ConnectToServer(settings);

                if (m_Destroy)
                {
                    m_Client.Dispose();
                }
            }
            catch (Exception ex)
            {
                Debug.LogException(ex);
            }
        }
Exemple #6
0
        async void StartClient(SocketTask task)
        {
            try
            {
                IPAddress[] addresses = Dns.GetHostAddresses(m_ConnectAddress);
                IPAddress   ip        = null;
                foreach (var tmp in addresses)
                {
                    if (tmp.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                    {
                        ip = tmp;
                    }
                }

                ServerConnectSettings setting;
                if (!string.IsNullOrWhiteSpace(m_RsaXmlPath))
                {
                    var xml = Resources.Load <TextAsset>(m_RsaXmlPath);
                    setting = ServerConnectSettings.FromXML(xml.text, new IPEndPoint(ip, m_Port));
                }
                else
                {
                    setting = new ServerConnectSettings
                    {
                        EndPoint = new IPEndPoint(ip, m_Port),
                    };
                }
                m_ClientConn = await Connection.ConnectToServer(setting);

                Setup(m_ClientConn);
                task.Success = true;
                task.IsDone  = true;
            }
            catch (Exception ex)
            {
                task.Success            = false;
                task.TransportException = ex;
                task.IsDone             = true;
            }
        }
Exemple #7
0
 public Task Connect(ServerConnectSettings settings)
 {
     return(Client.Connect(settings));
 }
Exemple #8
0
        public Task Connect(string publicKey, string host, int port, CancellationToken token = default)
        {
            var settings = ServerConnectSettings.FromXML(publicKey, host, port);

            return(Connect(settings, token));
        }
Exemple #9
0
        public Task Connect(string host, int port, CancellationToken token = default)
        {
            var settings = ServerConnectSettings.Create(host, port);

            return(Connect(settings, token));
        }
Exemple #10
0
 internal ClientConnectionImpl(int id, UdpSocket socket, ServerConnectSettings settings, Encryptor encryptor, EncryptorGenerator encryptorGenerator) : base(socket, encryptorGenerator)
 {
     SelfId   = id;
     m_UseP2P = settings.UseP2P;
     m_PeerManager.Add(new PeerEntry(id, 0, encryptor, settings.EndPoint));
 }