Exemplo n.º 1
0
        public async Task <TransportMessage> Serialize(Message message)
        {
            var transportMessage = await _serializer.Serialize(message);

            var body = transportMessage.Body;

            if (body.Length < _bodySizeThresholdBytes)
            {
                return(transportMessage);
            }

            var headers        = transportMessage.Headers.Clone();
            var compressedBody = _zipper.Zip(transportMessage.Body);

            headers[Headers.ContentEncoding] = GzipEncodingHeader;

            var compressedTransportMessage = new TransportMessage(headers, compressedBody);

            return(compressedTransportMessage);
        }
Exemplo n.º 2
0
        void PossiblyCompressTransportMessage(OutgoingStepContext context)
        {
            var transportMessage = context.Load <TransportMessage>();

            if (transportMessage.Body == null)
            {
                return;
            }

            if (transportMessage.Body.Length < _bodySizeThresholdBytes)
            {
                return;
            }

            var headers        = transportMessage.Headers.Clone();
            var compressedBody = _zipper.Zip(transportMessage.Body);

            headers[Headers.ContentEncoding] = GzipEncodingHeader;

            var compressedTransportMessage = new TransportMessage(headers, compressedBody);

            context.Save(compressedTransportMessage);
        }