Exemple #1
0
        public IEnumerator CanCreateMultipleClientInstances()
        {
            int count = 10;

            SimpleWebTransport[] transports = new SimpleWebTransport[count];

            for (int i = 0; i < count; i++)
            {
                transports[i] = CreateTransport <SimpleWebTransport>();

                transports[i].ClientConnect("localhost");
                yield return(new WaitForSeconds(0.2f));
            }

            yield return(new WaitForSeconds(0.5f));


            Assert.That(server.onConnect, Has.Count.EqualTo(count), $"Connect should have been calle {count} times");

            for (int i = 0; i < count; i++)
            {
                transports[i].ClientDisconnect();
                yield return(new WaitForSeconds(0.2f));
            }

            // wait for disconnect
            yield return(new WaitForSeconds(1));

            Assert.That(server.onDisconnect, Has.Count.EqualTo(count), $"disconnect should have been calle {count} times");
        }
        public IEnumerator CanStart2ndServerAfterFirstSTops()
        {
            // use {} block for local variable scope
            {
                SimpleWebTransport transport = CreateTransport <SimpleWebTransport>();

                transport.ServerStart();
                Assert.That(transport.ServerActive(), Is.True);
                yield return(new WaitForSeconds(0.2f));

                Assert.That(transport.ServerActive(), Is.True);

                transport.ServerStop();
                Assert.That(transport.ServerActive(), Is.False);
            }

            {
                SimpleWebTransport transport = CreateTransport <SimpleWebTransport>();

                transport.ServerStart();
                Assert.That(transport.ServerActive(), Is.True);
                yield return(new WaitForSeconds(0.2f));

                Assert.That(transport.ServerActive(), Is.True);

                transport.ServerStop();
                Assert.That(transport.ServerActive(), Is.False);
            }
        }
Exemple #3
0
 private void Start()
 {
     transport = GetComponent <SimpleWebTransport>();
     transport.OnServerConnected    = onConnect;
     transport.OnServerDataReceived = onData;
     transport.OnServerDisconnected = onDisconnect;
     transport.OnServerError        = onError;
     transport.ServerStart();
 }
        public IEnumerator ServerCanStartAndStopWithoutErrors()
        {
            SimpleWebTransport transport = CreateTransport <SimpleWebTransport>();

            transport.ServerStart();
            Assert.That(transport.ServerActive(), Is.True);
            yield return(new WaitForSeconds(0.2f));

            Assert.That(transport.ServerActive(), Is.True);

            transport.ServerStop();
            Assert.That(transport.ServerActive(), Is.False);
            yield return(new WaitForSeconds(0.2f));

            Assert.That(transport.ServerActive(), Is.False);
        }
 /// <summary>
 /// Create copy of array, need to do this because buffers are re-used
 /// </summary>
 /// <param name="_"></param>
 /// <param name="segment"></param>
 /// <returns></returns>
 public static byte[] CreateCopy(this SimpleWebTransport _, ArraySegment <byte> segment)
 {
     byte[] copy = new byte[segment.Count];
     Array.Copy(segment.Array, segment.Offset, copy, 0, segment.Count);
     return(copy);
 }