使用netty4异步调用链接HTTP请求 - 响应

时间:2013-06-21 12:16:48

标签: java netty

我正在使用netty-4.0x编写一个简单的HTTP客户端。
 按如下方式构建管道:

pipeline.addLast("codec", new HttpClientCodec());
pipeline.addLast("inflater", new HttpContentDecompressor());
pipeline.addLast("handler", new HttpResponseHandler());

其中HttpResponseHandler提供messageReceived()

的实施

现在有一个线程池调用客户端并继续发送http消息, 我知道ChannelFuture future = channel.write(request);是异步调用,并且会在没有阻止的情况下出现

我遇到的查询是,有没有办法在不调用的情况下链接请求 - 响应 future.sync()致电。

提前感谢所有帮助!!!

2 个答案:

答案 0 :(得分:0)

如果您对服务器进行编码,则可以让客户端向HTTP标头添加唯一ID,并让服务器在响应中回显它。

答案 1 :(得分:0)

如果您遵循严格的HTTP流水线规则,那么在任何给定的通道上,响应将按请求发送的顺序返回。应该足以维护请求队列,删除每个队列的前端收到回复。

如果要为每个请求创建新频道和该频道的新管道,则更容易。无论哪种方式,您都可以向管道添加处理程序,该处理程序会记住请求(或请求队列),并在收到响应时将请求和响应返回给您的应用程序。