用于在Netty中处理固定大小的消息的管道设置

时间:2013-01-19 19:35:18

标签: netty pipeline

在我目前的场景中,我有一个现有的非netty客户端,它将固定的消息大小(32 * 1024字节)发送到我现有的非netty服务器。我正在更改我的服务器以使用Netty,我不清楚我需要在我的业务逻辑处理程序之前添加到我的管道的处理程序。如果我要使用SSL,那么我将首先在管道中添加SSL处理程序,并将业务逻辑处理程序作为最后一个。那么中间需要哪些处理程序?我需要一个设置大小的FrameDecoder(如果存在)?消息不是由任何字符分隔的,所以我认为我不需要使用DelimiterBasedFrameDecoder。我也不需要使用StringDecoder或StringEncoder。

    …
    …

    pipeline.addLast("ssl", new SslHandler(engine));

    // Anything to add here for fixed sized byte[] messages??????

    // and finally add business logic handler
    pipeline.addLast("handler", new BusinessLogicHandler());
  …
  …

对于bootstrap,我设置了以下选项:

   this.bootstrap.setOption("keepAlive", true);
    this.bootstrap.setOption("sendBufferSize", 32*1024);
    this.bootstrap.setOption("receiveBufferSize", 32*1024);
    this.bootstrap.setOption("tcpNoDelay", true);   

我是否也需要设置writeBufferHighWaterMark选项?

谢谢

1 个答案:

答案 0 :(得分:1)

对于固定大小的消息,您可以在业务处理程序前添加FixedLengthFrameDecoder。

请参阅:

http://netty.io/3.6/api/org/jboss/netty/handler/codec/frame/FixedLengthFrameDecoder.html