Hi,

I'd like to use a MessageToMessageDecoder to transform from one type to 
another while sending a message from a client to a remote server.  The 
MessageToMessage Encoder/Decoder allow this to be accomplished easily. 
 When using UDP and an AddressedEnvelope to preserve remote address info, 
this is not the case.  

The following snippet shows a simplified channel pipeline to hopefully 
illustrate my use case.

ChannelInitializer<DatagramChannel> datagramChannelInitializer = new 
ChannelInitializer<DatagramChannel>() {
                    @Override
                    public void initChannel(DatagramChannel ch) throws 
Exception {

                                ch.pipeline().addLast(new 
DatagramPacketDecoder(new Type1Decoder()))
                                .addLast(new Type2MessageToMessageDecoder())
                                .addLast(new Type2MessageToMessageEncoder())
                                .addLast(new DatagramPacketEncoder<>(new 
Type1Encoder()));
                    }
}


During encoding, I wrap my type1 payload in an AddressedEnvelope to specify 
the remote address.  The Type2MessageToMessageEncoder is never invoked 
because AddressedEnvelope<Type1, SocketAddress> does not match Type2.  I 
tried to create my own class AddressedEnvelopeMessageToMessageEncoder 
similar to the DatagramPacketEncoder which delegates to a provided encoder 
but the encode method is not visible.

What is the recommended approach for this kind of use case?  Any help 
appreciated.

Thanks,

Joe

-- 
You received this message because you are subscribed to the Google Groups 
"Netty discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/netty/788b5d49-63fa-4dff-b522-81d90118ada3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to