Amqp.WebSocketTransport.WriteAsync C# (CSharp) Method

WriteAsync() private method

private WriteAsync ( ByteBuffer buffer ) : Task
buffer ByteBuffer
return Task
        async Task WriteAsync(ByteBuffer buffer)
        {
            do
            {
                try
                {
                    await this.webSocket.SendAsync(new ArraySegment<byte>(buffer.Buffer, buffer.Offset, buffer.Length),
                        WebSocketMessageType.Binary, true, CancellationToken.None);
                }
                catch (Exception exception)
                {
                    this.connection.OnIoException(exception);
                    break;
                }

                lock (this.bufferQueue)
                {
                    if (this.bufferQueue.Count > 0)
                    {
                        buffer = this.bufferQueue.Dequeue();
                    }
                    else
                    {
                        this.writing = false;
                        buffer = null;
                    }
                }
            }
            while (buffer != null);
        }
    }