Example #1
0
        internal void TriggerMessageReceive(string message)
        {
            var compressed = Compress(message);
            var binary     = ResponseMessage.BinaryMessage(compressed);

            ResponseMessageSubject.OnNext(binary);
        }
        public void AccountClient_UnknownContent_UnhandledStreamUpdated(string messageContent)
        {
            // Arrange
            InitializeAccountClient();

            // Act
            var compressed = Compress(messageContent);
            var binary     = ResponseMessage.BinaryMessage(compressed);

            ResponseMessageSubject.OnNext(binary);

            // Assert
            UnhandledMessageObserverMock.Verify(m => m.OnNext(It.IsAny <string>()), Times.Once);
        }
Example #3
0
        protected virtual async Task <(WebSocketReceiveResult result, ResponseMessage message)> ReadRequest(WebSocket webSocket)
        {
            var buffer = new ArraySegment <byte>(new byte[8192]);

            using (var ms = new MemoryStream())
            {
                WebSocketReceiveResult result;
                do
                {
                    result = await webSocket.ReceiveAsync(buffer, CancellationToken.None);

                    if (result.CloseStatus.HasValue)
                    {
                        return(result, null);
                    }

                    if (buffer.Array != null)
                    {
                        ms.Write(buffer.Array, buffer.Offset, result.Count);
                    }
                } while (!result.EndOfMessage);

                ms.Seek(0, SeekOrigin.Begin);

                ResponseMessage message;
                if (result.MessageType == WebSocketMessageType.Text)
                {
                    var data = GetEncoding().GetString(ms.ToArray());
                    message = ResponseMessage.TextMessage(data);
                }
                else
                {
                    var data = ms.ToArray();
                    message = ResponseMessage.BinaryMessage(data);
                }

                return(result, message);
            }
        }
Example #4
0
 private async Task SendEcho(WebSocket webSocket, byte[] msg)
 {
     await SendResponse(webSocket, ResponseMessage.BinaryMessage(msg));
 }