1

在我当前的场景中,我有一个现有的非网络客户端,它正在向我现有的非网络服务器发送固定的消息大小(32 * 1024 字节)。我正在更改我的服务器以使用 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());
  …
  …

对于引导程序,我设置了以下选项:

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

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

谢谢

4

1 回答 1

1

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

看:

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

于 2013-01-20T08:53:24.497 回答