/// <returns>new offset in buffer</returns> static int SendMessage(byte[] buffer, int startOffset, ArrayBuffer msg, bool setMask, MaskHelper maskHelper) { int msgLength = msg.count; int offset = WriteHeader(buffer, startOffset, msgLength, setMask); if (setMask) { offset = maskHelper.WriteMask(buffer, offset); } msg.CopyTo(buffer, offset); offset += msgLength; // dump before mask on Log.DumpBuffer("Send", buffer, startOffset, offset); if (setMask) { int messageOffset = offset - msgLength; MessageProcessor.ToggleMask(buffer, messageOffset, msgLength, buffer, messageOffset - Constants.MaskSize); } return(offset); }
static void SendMessage(Stream stream, byte[] buffer, ArrayBuffer msg, bool setMask, MaskHelper maskHelper) { int msgLength = msg.count; int sendLength = WriteHeader(buffer, msgLength, setMask); if (setMask) { sendLength = maskHelper.WriteMask(buffer, sendLength); } msg.CopyTo(buffer, sendLength); sendLength += msgLength; // dump before mask on Log.DumpBuffer("Send", buffer, 0, sendLength); if (setMask) { int messageOffset = sendLength - msgLength; MessageProcessor.ToggleMask(buffer, messageOffset, msgLength, buffer, messageOffset - Constants.MaskSize); } stream.Write(buffer, 0, sendLength); }