void Write(OpCode opCode, byte[] payload=null)
{
var writeBufferSize = 4 + (payload == null ? 0 : payload.Length);
using (var ms = new MemoryStream(writeBufferSize))
{
int bytesWritten = FrameEncoder.Write(ms, opCode, false, payload);
try
{
lock (stateLock)
{
Write(ms.GetBuffer(), 0, bytesWritten);
onBytesSent(bytesWritten);
}
}
catch (SessionStreamException e)
{
throw new WebSocketException("Exception writing to websocket stream", e);
}
}
}