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);
}
}