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

用于在Netty中处理固定大小邮件的管道设置,netty,pipeline,Netty,Pipeline,在我当前的场景中,我有一个现有的非netty客户端,它正在向我现有的非netty服务器发送一个固定大小的消息(32*1024字节)。我正在将我的服务器更改为使用Netty,我不清楚在我的业务逻辑处理程序之前需要添加到管道中的处理程序。如果我打算使用SSL,那么我将首先在管道中添加SSL处理程序,最后添加业务逻辑处理程序。那么中间需要我做些什么呢?我是否需要设置大小的帧解码器(如果存在)?消息没有任何字符分隔,因此我认为不需要使用DelimiterBasedFrameDecoder。我也不需要使用

在我当前的场景中,我有一个现有的非netty客户端,它正在向我现有的非netty服务器发送一个固定大小的消息(32*1024字节)。我正在将我的服务器更改为使用Netty,我不清楚在我的业务逻辑处理程序之前需要添加到管道中的处理程序。如果我打算使用SSL,那么我将首先在管道中添加SSL处理程序,最后添加业务逻辑处理程序。那么中间需要我做些什么呢?我是否需要设置大小的帧解码器(如果存在)?消息没有任何字符分隔,因此我认为不需要使用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选项


感谢您

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

见:


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

见:


谢谢你,诺曼。当使用FixedLengthFrameDecoder时,何时会/应该有人为AllocatelBuffer传入true?如果为true,则缓冲区分配在前面。所以它会直接占用内存,但会保护一些副本..好的。我让我的测试代码与FixedLengthFrameDecoder一起工作。谢谢,诺曼,谢谢,诺曼。当使用FixedLengthFrameDecoder时,何时会/应该有人为AllocatelBuffer传入true?如果为true,则缓冲区分配在前面。所以它会直接占用内存,但会保护一些副本..好的。我让我的测试代码与FixedLengthFrameDecoder一起工作。谢谢你,诺曼。