Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
                });
            }
        }