public async Task TestWebsocketMultipleMessages() { var port = 15005; using (var server = new SyncWebSocketServer(port)) { server.ClientConnected += ClientConnected; Task.Run(() => server.Run()); Thread.Sleep(2000); await TestClient(server, port, 0, 100).ConfigureAwait(false); } }
public async Task TestClient(SyncWebSocketServer server, int port, int index, int packets = 1) { using (var client = new WebSocketClient()) { Assert.IsTrue(await client.Connect($"ws://127.0.0.1:{port}").ConfigureAwait(false)); Thread.Sleep(1000); Assert.IsTrue(client.UpgradedConnection); var dataReceived = 0; var sent = 0; client.MessageReceived += (wsClient, data) => { Console.WriteLine($"{index}: {data}"); dataReceived++; }; client.ConnectionClosed += (wsClient, reason) => { Console.WriteLine($"{index}: Close Connection - {reason}"); }; client.Pong += (wsClient, data) => { Console.WriteLine("PONG!"); }; Task.Run(() => client.Run()); while (dataReceived < packets && client.Connected && server.Clients.Count > 0) { if (sent == dataReceived) { sent++; server.Send(new TestClass() { Name = string.Join("", Enumerable.Range(0, 300).Select(a => index.ToString())), Number = dataReceived }); } else { Thread.Sleep(10); } } Assert.IsTrue(dataReceived >= packets); } }
public void TestWebsocket() { var port = 15005; using (var server = new SyncWebSocketServer(port)) { server.ClientConnected += ClientConnected; Task.Run(() => server.Run()); Thread.Sleep(2000); TestClient(server, port, 0); Parallel.For(1, 3, (i) => { TestClient(server, port, i, 2); }); } }