结合两个连续的后端响应来构建前端响应

时间:2014-02-23 20:51:54

标签: netty

Netty 4.0服务器,它为每个传入请求发出两个出站请求,并使用出站请求的响应来形成对原始入站请求的响应。如果成功,则出站1响应用于构建出站2请求。

请参见此处的图表:https://twitter.com/puffybsd/status/437652876928626688/photo/1

这就是我现在正在做的事情(仅用1个远程主机进行测试):

  1. 使用包含SimpleInboundChannelHandler<FullHttpRequest>调用HandlerA的管道创建标准ServerBootstrap。
  2. HandlerA收到channelActive事件时,创建一个新的Bootstrap,注册一个新的Handler,HandlerB,打开与第一个远程主机的连接并存储通道{{1}在变量ChannelB
  3. HandlerA收到HandlerA事件时,从read0对象中提取参数,构建FullHttpRequest对象并将其存储在FullHttpResponse的属性中变量以及当前上下文。
  4. 向第一个远程主机发送请求。
  5. ChannelB从远程主机1收到HandlerB时,从FullHttpResponse属性集中提取原始上下文和FullHttpResponse对象。
  6. 更新ChannelB并将其写入原始上下文的频道。
  7. 这似乎有效。尚未添加第二个远程主机呼叫。两个后端远程主机不会更改 - 它们始终是相同的地址。当有新的客户端请求,向后端发送请求,然后在收到来自后端的响应时向客户端发送响应时,它看起来正在做的是向后端打开套接字。

    以下是一些代码:

    FullHttpResponse

    以下是问题:

    1. 是否会为每个活动通道重用底层连接创建一个新的Bootstrap客户端?
    2. 是否存在响应与错误的传入请求相关联的风险? (我认为不是因为http规则,而是100%肯定)。
    3. 有更简单的方法吗?
    4. 如何处理错误和超时,特别是清理?
    5. 是否有SocksProxy和HexDumpProxy的端到端示例?这似乎是一个非常常见的用例。

0 个答案:

没有答案