netty写了一个服务,给客户端连接,类似http,但连接是不close掉的。
当连接还在时,server需要反向请求client。
server既是server也是client。
我用下面的方法,client请求server和server返回数据给client的编码解码都是可以的。但当我加上server对client的请求编码时就报错了。
正常代码
serverBootstrap.group(serverBossGroup, serverWorkerGroup).channel(NioServerSocketChannel.class)
.childHandler(new ChannelInitializer<NioSocketChannel\>() {
protected void initChannel(NioSocketChannel ch) throws Exception {
ch.pipeline().addLast(new HttpRequestDecoder());
ch.pipeline().addLast(new HttpResponseEncoder());
ch.pipeline().addLast("aggregator",new HttpObjectAggregator(512 \* 1024));
ch.pipeline().addLast(new SimpleServerHandler());
}
});
加上这个就报错
ch.pipeline().addLast(new HttpRequestEncoder());
应该是pipeline进入了RequeseEncoder,又接着进入了ResponseEncoder的缘故。
有什么办法可以选择性的调用不同的Encoder吗?
你听过服务端请求客户端的吗