Protocol specific channel handlers

Posted by Mickael Marrache on Stack Overflow See other posts from Stack Overflow or by Mickael Marrache
Published on 2012-07-05T09:06:26Z Indexed on 2012/07/05 9:15 UTC
Read the original article Hit count: 281

Filed under:
|

I'm writing an application server that will receive SIP and DNS messages from the network.

When I receive a message from the network, I understand from the documentation that at first, I get a ChannelBuffer. I would like to determine which kind of message has been received (SIP or DNS) and to decode it.

To determine the message type, I can dedicate port to each type of message, but I would be interested to know if there exist another solution for that. My question is more about how to decode the ChannelBuffer.

Is there a ChannelHandler provided by Netty to decode SIP or DNS messages? If not, what would be the right place in the type hierarchy to write my custom ChannelHandler?

To illustrate my question, let's take as example the HttpRequestDecoder, the hierarchy is:

java.lang.Object
    org.jboss.netty.channel.SimpleChannelUpstreamHandler
        org.jboss.netty.handler.codec.frame.FrameDecoder
            org.jboss.netty.handler.codec.replay.ReplayingDecoder<HttpMessageDecoder.State>
                org.jboss.netty.handler.codec.http.HttpMessageDecoder
                    org.jboss.netty.handler.codec.http.HttpRequestDecoder

Also, do I need to use two different ChannelHandler for decoding and encoding, or is there a possibility to use a single ChannelHandler for both?

Thanks

© Stack Overflow or respective owner

Related posts about java

Related posts about netty