public async Task Eio3HttpConnected2Test()
        {
            string uri = "http://localhost:11002/socket.io/?token=V3&EIO=3&transport=polling";

            var mockHttp = new MockHttpMessageHandler();

            mockHttp.When(uri)
            .Respond("text/plain", "1:21:3");
            var httpClient = mockHttp.ToHttpClient();

            var result    = new List <string>();
            var transport = new HttpEio3Transport(httpClient)
            {
                OnTextReceived = text => result.Add(text)
            };
            await transport.GetAsync(uri, CancellationToken.None);

            Assert.AreEqual(2, result.Count);
            Assert.AreEqual("2", result[0]);
            Assert.AreEqual("3", result[1]);
        }
        public async Task Eio3GetBinaryTest()
        {
            string uri = "http://localhost:11002/socket.io/?token=V3&EIO=3&transport=polling";

            byte[] arrOutput = { 0x00, 0x07, 0x05, 0xFF, 0x34, 0x35, 0x32, 0x2D, 0x5B, 0x22, 0x77, 0x65, 0x6C, 0x63, 0x6F, 0x6D, 0x65, 0x22, 0x2C, 0x7B, 0x22, 0x5F, 0x70, 0x6C, 0x61, 0x63, 0x65, 0x68, 0x6F, 0x6C, 0x64, 0x65, 0x72, 0x22, 0x3A, 0x74, 0x72, 0x75, 0x65, 0x2C, 0x22, 0x6E, 0x75, 0x6D, 0x22, 0x3A, 0x30, 0x7D, 0x2C, 0x7B, 0x22, 0x5F, 0x70, 0x6C, 0x61, 0x63, 0x65, 0x68, 0x6F, 0x6C, 0x64, 0x65, 0x72, 0x22, 0x3A, 0x74, 0x72, 0x75, 0x65, 0x2C, 0x22, 0x6E, 0x75, 0x6D, 0x22, 0x3A, 0x31, 0x7D, 0x5D, 0x01, 0x02, 0x09, 0xFF, 0x04, 0x77, 0x65, 0x6C, 0x63, 0x6F, 0x6D, 0x65, 0x20, 0x42, 0x71, 0x46, 0x63, 0x32, 0x53, 0x6F, 0x72, 0x67, 0x75, 0x6B, 0x4F, 0x32, 0x36, 0x2D, 0x6C, 0x41, 0x41, 0x41, 0x4A, 0x01, 0x05, 0xFF, 0x04, 0x74, 0x65, 0x73, 0x74 };
            var    mockHttp  = new MockHttpMessageHandler();

            mockHttp.When(uri)
            .Respond(req =>
            {
                var content = new ByteArrayContent(arrOutput);
                content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                return(new HttpResponseMessage
                {
                    Content = content
                });
            });
            var httpClient = mockHttp.ToHttpClient();

            var texts     = new List <string>();
            var bytes     = new List <byte[]>();
            var transport = new HttpEio3Transport(httpClient)
            {
                OnTextReceived   = text => texts.Add(text),
                OnBinaryReceived = b => bytes.Add(b)
            };
            await transport.GetAsync(uri, CancellationToken.None);

            await Task.Delay(100);

            Assert.AreEqual(1, texts.Count);
            Assert.AreEqual("452-[\"welcome\",{\"_placeholder\":true,\"num\":0},{\"_placeholder\":true,\"num\":1}]", texts[0]);
            Assert.AreEqual(2, bytes.Count);
            Assert.AreEqual("welcome BqFc2SorgukO26-lAAAJ", Encoding.UTF8.GetString(bytes[0]));
            Assert.AreEqual("test", Encoding.UTF8.GetString(bytes[1]));
        }