我已經實現了一個處理http pipelining的通道處理程序。我的代碼在github上:https://github.com/huntc/netty-http-pipeliningNetty http流水線方法驗證
我的問題是圍繞着我採取的方法,以及它在Netty架構中是否合理。
當我的HttpPipeliningHandler接收到一個上游的HttpRequest時,它會形成OrderedUpstreamMessageEvent類型的新消息事件。這個事件也是我的軟件包的一部分,並保留與制定回覆消息時所需的請求相關的信息。
當一個通道處理器進一步上游接收它通過產生一個OrderedDownstreamMessageEvent例如爲:
ctx.sendDownstream(new OrderedDownstreamMessageEvent(oue, somemessage));
其中
ctx = ChannelHandlerContext instance
oue = OrderedUpstreamMessageEvent instance
somemessage = some message instance to be sent as an http response
還可以做更多的樂趣的東西一樣發送分塊回覆形成一個答覆OrderedUpstreamMessageEvent。
這種方法看起來合理嗎?它當然有效!在上游處理程序中轉換消息事件是否經常/可接受?顯然,如果消息事件再次被轉換,那麼流水線功能將不起作用。
謝謝!代碼現在負責同步。我應該更仔細地閱讀下游處理程序的javadoc!現在還使用close而不是斷開連接。 – 2013-03-28 21:04:56
我的主要問題是:它是否可以接受在上游處理程序中轉換消息事件? – 2013-03-28 21:05:36