public void OnReceive(Header header, Stream contentStream, int contentLength)
        {
            if (IsStreamPayload(header))
            {
                _streamManager.OnReceive(header, contentStream, contentLength);
            }
            else
            {
                if (_activeAssemblers.TryGetValue(header.Id, out var assembler))
                {
                    assembler.OnReceive(header, contentStream, contentLength);
                }

                // remove them when we are done
                if (header.End)
                {
                    _activeAssemblers.Remove(header.Id);
                }

                // ignore unknown header ids
            }
        }