2013-03-19 48 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