Netty嵌套管道/多路复用

avt*_*toy 6 pipeline nested multiplexing netty

我对Netty很陌生,但是当一些协议(例如P1和P2)封装在另一个协议中时,如何在Netty 4.x中实现一个案例呢?

              +-------------+
              |   decoder   |
              +-------------+
              |   encoder   |
              +-------------+
              |    muxer    |
              +-------------+
              |   demuxer   |
              +---+------+--+
                  |      |
                  |      |
           +------+      +------+
           |                    |
           |                    |
           v                    v
    +-------------+      +-------------+
    | P1 decoder  |      | P2 decoder  |
    +-------------+      +-------------+
    | P1 encoder  |      | P2 encoder  |
    +-------------+      +-------------+
    | P1 handler  |      | P2 handler  |
    +-------------+      +-------------+
Run Code Online (Sandbox Code Playgroud)

有没有办法创建嵌套管道,因此decoder<->encoder<->muxer<->demuxer作为主管道将根据分路器的决定沿P1或P2管道发送数据?

或者也许有一种方法以某种方式创建(为了清晰起见)"subchannels"与自己的管道?

Nor*_*rer 2

尚不支持“嵌套管道”。它可能是 4.1.0 的一部分。现在您需要动态删除/添加处理程序。

请参阅 [1] 的示例。

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