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); } }
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); }