Пример #1
0
        public IEnumerator ShouldConnectMultipleClients()
        {
            bool        client1Connected = false, client2Connected = false;
            ClientWorld client2 = new ClientWorld(new ClientOptions
            {
                Address   = "127.0.0.1",
                Port      = (ushort)(21650 + testCount),
                WorldName = $"Test_Connection_Client_2_{testCount}"
            });

            NewClientServer();
            clientWorld.Connected    += e => client1Connected = true;
            client2.Connected        += e => client2Connected = true;
            clientWorld.Disconnected += () => client1Connected = false;
            client2.Disconnected     += () => client2Connected = false;
            serverWorld.Listen();
            yield return(new WaitForSeconds(0.1f));

            clientWorld.Connect();
            client2.Connect();
            int maxCount = 30;

            while (maxCount >= 0 && !(client1Connected && client2Connected))
            {
                yield return(new WaitForSeconds(0.25f));

                maxCount--;
            }

            Assert.IsTrue(client1Connected);
            Assert.IsTrue(client2Connected);
        }
Пример #2
0
        public IEnumerator ShouldConnect()
        {
            NewClientServer();
            serverWorld.Listen();
            yield return(new WaitForSeconds(0.1f));

            clientWorld.Connect();

            Debug.Log("Waiting for client to be connected");
            int maxCount = 60;

            while (maxCount >= 0 && !(clientConnected || clientConnectFailed))
            {
                yield return(new WaitForSeconds(0.1f));

                maxCount--;
            }

            Debug.Log($"...Finished waiting ({(60f - maxCount) / 10f}seconds)");

            Assert.IsTrue(clientConnected);
        }
Пример #3
0
        public IEnumerator Server_ShouldSendRpcToMultipleClients()
        {
            ClientWorld client2 = new ClientWorld(new ClientOptions
            {
                Address   = "127.0.0.1",
                Port      = (ushort)(21650 + testCount),
                WorldName = $"TestServer_ShouldSendRpcToMultipleClients{testCount}"
            });

            Debug.Log((ushort)(21650 + testCount));
            NewClientServer();


            serverWorld.Listen();
            yield return(new WaitForSeconds(0.3f));

            clientWorld.Connect();
            yield return(new WaitForSeconds(0.2f));

            bool client2Connected = false;
            bool client2Failed    = false;

            client2.Connected        += e => client2Connected = true;
            client2.ConnectionFailed += s => client2Failed = true;
            client2.Connect();
            yield return(new WaitForSeconds(0.2f));

            int maxCount = 90;

            while (maxCount >= 0 && !(clientConnected || clientConnectFailed) && !(client2Connected || client2Failed))
            {
                yield return(new WaitForSeconds(0.1f));

                maxCount--;
            }

            Assert.IsTrue(clientConnected, "Client 1 did not connect to begin test");
            Assert.IsTrue(client2Connected, "Client 2 did not connect to begin test");

            serverWorld.World.CreateRpcRequest <PlayModeTestRequest>(
                serverWorld.GetNetworkConnectionEntityById(clientWorld.NetworkId));
            serverWorld.World.CreateRpcRequest <PlayModeTestRequest>(
                serverWorld.GetNetworkConnectionEntityById(client2.NetworkId));

            /*Assert.IsNotNull(clientWorld, "cw");
             * Assert.IsNotNull(clientWorld.World, "cww");
             * Assert.IsNotNull(clientWorld.World.GetExistingSystem<CreateRpcRequestSystem>(), "cws");*/

            PlayModeTestRequestReceiveSystem system1 =
                clientWorld.World.GetExistingSystem <PlayModeTestRequestReceiveSystem>();
            PlayModeTestRequestReceiveSystem system2 =
                client2.World.GetExistingSystem <PlayModeTestRequestReceiveSystem>();

            maxCount = 60;
            while (maxCount >= 0 && !system1.ReceivedRpc && !system2.ReceivedRpc)
            {
                yield return(new WaitForSeconds(0.1f));

                maxCount--;
            }

            Assert.IsTrue(system1.ReceivedRpc && system2.ReceivedRpc);
        }