Netty编码器管道没有链接

时间:2017-02-17 08:03:10

标签: java sockets netty zlib encoder

服务器配置为:

b.group(bossGroup, workerGroup)
          .channel(NioServerSocketChannel.class)
          .childHandler(new ChannelInitializer<SocketChannel>() {
            @Override
            public void initChannel(SocketChannel ch) throws Exception {
              ChannelPipeline p = ch.pipeline();
              p.addLast(new DelimiterBasedFrameDecoder(20, Delimiters.lineDelimiter()));
              p.addLast(new StringDecoder());

              p.addLast(new StringEncoder());
              p.addLast(new JdkZlibEncoder());
              p.addLast(new LengthFieldPrepender(2));
              p.addLast(new MyExecutor());
            }
          });

正在执行字符串编码器,但我认为ZLib编码器和LengthFieldPrepender会被执行吗?他们不是。

我的处理程序内容非常简单:

@Override
  public void channelRead0(ChannelHandlerContext ctx, String message) throws Exception {
    if (message.equals("A")) {
      ctx.writeAndFlush("B");
      return;
    }

    if (messageStr.equals("B")) {
      ctx.writeAndFlush("A");
      return;
    }
  }

我收到的是一个字符串:&#34; A&#34;,我发送&#34; B&#34;,但我希望Netty真的发送&#34; 1 XX&#34;,其中1是大小,XX是ZLIB编码的内容。

这有什么意义吗?为什么编码器没有链接?

0 个答案:

没有答案