public static async Task SendMessageAsync(
     this IWebSocketContext context,
     OperationMessage message,
     CancellationToken cancellationToken)
 {
     using (Stream messageStream = message.CreateMessageStream())
     {
         await context.SendMessageAsync(
             messageStream,
             cancellationToken);
     }
 }
Exemplo n.º 2
0
        public static async Task SendMessageAsync(
            this WebSocket webSocket,
            OperationMessage message,
            bool largeMessage = false)
        {
            var buffer = new byte[_maxMessageSize];

            await using Stream stream = message.CreateMessageStream(largeMessage);
            int read;

            do
            {
                read = stream.Read(buffer, 0, buffer.Length);
                var segment        = new ArraySegment <byte>(buffer, 0, read);
                var isEndOfMessage = stream.Position == stream.Length;

                await webSocket.SendAsync(
                    segment, WebSocketMessageType.Text,
                    isEndOfMessage, CancellationToken.None);
            } while (read == _maxMessageSize);
        }
        public static async Task SendMessageAsync(
            this IWebSocketContext context,
            OperationMessage message,
            CancellationToken cancellationToken)
        {
            var buffer = new byte[_maxMessageSize];

            using (Stream stream = message.CreateMessageStream())
            {
                int read = 0;
                do
                {
                    read = stream.Read(buffer, 0, buffer.Length);
                    var  segment        = new ArraySegment <byte>(buffer, 0, read);
                    bool isEndOfMessage = stream.Position == stream.Length;

                    await context.WebSocket.SendAsync(
                        segment, WebSocketMessageType.Text,
                        isEndOfMessage, cancellationToken);
                } while (read == _maxMessageSize);
            }
        }