/// <summary> /// Handles the read. /// </summary> /// <param name="slice">The slice.</param> /// <param name="bytesRead">The bytes read.</param> protected override void HandleRead(IBufferSlice slice, int bytesRead) { if (_messageBuilder.Append(new SliceStream(slice, bytesRead))) { object message; while (_messageBuilder.TryDequeue(out message)) { TriggerClientReceive(message); } } }
/// <summary> /// We've received something from the other end /// </summary> /// <param name="buffer">Buffer containing the received bytes</param> /// <param name="bytesRead">Amount of bytes that we received</param> /// <remarks>You have to handle all bytes, anything left will be discarded.</remarks> protected override void OnReceived(IBufferSlice buffer, int bytesRead) { var gotMessage = _messageBuilder.Append(new SliceStream(buffer, bytesRead)); if (gotMessage) { object message; while (_messageBuilder.TryDequeue(out message)) { Received(this, new ReceivedMessageEventArgs(message)); } } }