2013-03-19 59 views
6

我對Netty很新,但是如何在多個協議(例如P1和P2)被封裝在另一個協議內的情況下在Netty 4.x中實現一個案例?Netty嵌套管道/多路複用

   +-------------+ 
       | decoder | 
       +-------------+ 
       | encoder | 
       +-------------+ 
       | muxer | 
       +-------------+ 
       | demuxer | 
       +---+------+--+ 
        |  | 
        |  | 
      +------+  +------+ 
      |     | 
      |     | 
      v     v 
    +-------------+  +-------------+ 
    | P1 decoder |  | P2 decoder | 
    +-------------+  +-------------+ 
    | P1 encoder |  | P2 encoder | 
    +-------------+  +-------------+ 
    | P1 handler |  | P2 handler | 
    +-------------+  +-------------+ 

有沒有一種方法來創建嵌套的管道,使decoder<->encoder<->muxer<->demuxer是主要的管道將發送基於分路器的決定沿着P1或P2管道中的數據?

或者也許有辦法以某種方式創建(爲了清晰起見)「子通道」與他們自己的管道?

回答

2

尚未支持「嵌套管道」。它可能是4.1.0的一部分。現在你需要移除/添加處理程序。

查看[1]的例子。

[1] https://github.com/netty/netty/blob/master/example/src/main/java/io/netty/example/portunification/PortUnificationServerHandler.java

+0

現在呢?仍然不支持? – 2018-01-31 12:41:56

+0

不......不支持。 – 2018-01-31 12:42:33

+0

因此,爲了實現某種多路複用,我需要在運行中添加/刪除處理程序?似乎會引入一些延遲...也許有更好的方法? – 2018-01-31 12:44:34