public void WsServerMulticastTest() { string address = "127.0.0.1"; int port = 8082; // Create and start Echo server var server = new EchoWsServer(IPAddress.Any, port); Assert.True(server.Start()); while (!server.IsStarted) { Thread.Yield(); } // Create and connect Echo client var client1 = new EchoWsClient(address, port); Assert.True(client1.ConnectAsync()); while (!client1.IsWsConnected || (server.Clients != 1)) { Thread.Yield(); } // Multicast some data to all clients server.MulticastText("test"); // Wait for all data processed... while (client1.Received != 4) { Thread.Yield(); } // Create and connect Echo client var client2 = new EchoWsClient(address, port); Assert.True(client2.ConnectAsync()); while (!client2.IsWsConnected || (server.Clients != 2)) { Thread.Yield(); } // Multicast some data to all clients server.MulticastText("test"); // Wait for all data processed... while ((client1.Received != 8) || (client2.Received != 4)) { Thread.Yield(); } // Create and connect Echo client var client3 = new EchoWsClient(address, port); Assert.True(client3.ConnectAsync()); while (!client3.IsWsConnected || (server.Clients != 3)) { Thread.Yield(); } // Multicast some data to all clients server.MulticastText("test"); // Wait for all data processed... while ((client1.Received != 12) || (client2.Received != 8) || (client3.Received != 4)) { Thread.Yield(); } // Disconnect the Echo client Assert.True(client1.CloseAsync(1000)); while (client1.IsWsConnected || (server.Clients != 2)) { Thread.Yield(); } // Multicast some data to all clients server.MulticastText("test"); // Wait for all data processed... while ((client1.Received != 12) || (client2.Received != 12) || (client3.Received != 8)) { Thread.Yield(); } // Disconnect the Echo client Assert.True(client2.CloseAsync(1000)); while (client2.IsWsConnected || (server.Clients != 1)) { Thread.Yield(); } // Multicast some data to all clients server.MulticastText("test"); // Wait for all data processed... while ((client1.Received != 12) || (client2.Received != 12) || (client3.Received != 12)) { Thread.Yield(); } // Disconnect the Echo client Assert.True(client3.CloseAsync(1000)); while (client3.IsWsConnected || (server.Clients != 0)) { Thread.Yield(); } // Stop the Echo server Assert.True(server.Stop()); while (server.IsStarted) { Thread.Yield(); } // Check the Echo server state Assert.True(server.Started); Assert.True(server.Stopped); Assert.True(server.Connected); Assert.True(server.Disconnected); Assert.True(server.BytesSent > 0); Assert.True(server.BytesReceived > 0); Assert.True(!server.Errors); // Check the Echo client state Assert.True(client1.BytesSent > 0); Assert.True(client2.BytesSent > 0); Assert.True(client3.BytesSent > 0); Assert.True(client1.BytesReceived > 0); Assert.True(client2.BytesReceived > 0); Assert.True(client3.BytesReceived > 0); Assert.True(!client1.Errors); Assert.True(!client2.Errors); Assert.True(!client3.Errors); }
public void WsServerTest() { string address = "127.0.0.1"; int port = 8081; // Create and start Echo server var server = new EchoWsServer(IPAddress.Any, port); Assert.True(server.Start()); while (!server.IsStarted) { Thread.Yield(); } // Create and connect Echo client var client = new EchoWsClient(address, port); Assert.True(client.ConnectAsync()); while (!client.IsWsConnected || (server.Clients != 1)) { Thread.Yield(); } // Send a message to the Echo server client.SendTextAsync("test"); // Wait for all data processed... while (client.Received != 4) { Thread.Yield(); } // Disconnect the Echo client Assert.True(client.CloseAsync(1000)); while (client.IsWsConnected || (server.Clients != 0)) { Thread.Yield(); } // Stop the Echo server Assert.True(server.Stop()); while (server.IsStarted) { Thread.Yield(); } // Check the Echo server state Assert.True(server.Started); Assert.True(server.Stopped); Assert.True(server.Connected); Assert.True(server.Disconnected); Assert.True(server.BytesSent > 0); Assert.True(server.BytesReceived > 0); Assert.True(!server.Errors); // Check the Echo client state Assert.True(client.Connected); Assert.True(client.Disconnected); Assert.True(client.BytesSent > 0); Assert.True(client.BytesReceived > 0); Assert.True(!client.Errors); }