示例#1
0
        public void With_WebSocket_FailsWithDoubleMessageRead()
        {
            Assert.Throws <WebSocketException>(() =>
            {
                var handshake = GenerateSimpleHandshake();
                using (var ms = new MemoryStream())
                    using (
                        WebSocket ws = new WebSocketRfc6455(ms,
                                                            new WebSocketListenerOptions()
                    {
                        PingTimeout = Timeout.InfiniteTimeSpan
                    },
                                                            new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1), new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2),
                                                            handshake.Request, handshake.Response, handshake.NegotiatedMessageExtensions))
                    {
                        ms.Write(new Byte[] { 129, 130, 75, 91, 80, 26, 3, 50 }, 0, 8);
                        ms.Write(new Byte[] { 129, 130, 75, 91, 80, 26, 3, 50 }, 0, 8);
                        ms.Flush();
                        ms.Seek(0, SeekOrigin.Begin);

                        var reader = ws.ReadMessage();
                        reader     = ws.ReadMessage();
                    }
            });
        }
        //[ExpectedException(typeof(WebSocketException))]
        public void With_WebSocket_FailsWithDoubleMessageAwait()
        {
            var handshake = GenerateSimpleHandshake();

            try
            {
                using (var ms = new BufferedStream(new MemoryStream()))
                    using (
                        WebSocket ws = new WebSocketRfc6455(ms,
                                                            new WebSocketListenerOptions()
                    {
                        PingTimeout = Timeout.InfiniteTimeSpan
                    },
                                                            new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1), new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2),
                                                            handshake.Request, handshake.Response, handshake.NegotiatedMessageExtensions))
                    {
                        ms.Write(new Byte[] { 129, 130, 75, 91, 80, 26, 3, 50 }, 0, 8);
                        ms.Write(new Byte[] { 129, 130, 75, 91, 80, 26, 3, 50 }, 0, 8);
                        ms.Flush();
                        ms.Seek(0, SeekOrigin.Begin);

                        ws.ReadMessage();
                        ws.ReadMessage();
                    }
            }
            catch (WebSocketException)
            {
            }
            catch (Exception)
            {
                Assert.Fail("Should throw WebSocketException");
            }
        }