2013-03-19 11 views
6

Ich bin zu Netty ziemlich neu, aber wie würde man einen Fall, in Netty 4.x implementieren, wenn mehrere Protokolle (zum Beispiel P1 und P2) in einem anderen Protokoll verkapselt sind?Netty verschachtelt Pipelines/Multiplexing

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

Gibt es eine Möglichkeit verschachtelte Rohrleitungen zu schaffen, so dass decoder<->encoder<->muxer<->demuxer die Hauptleitung sein, die Daten entlang P1 oder P2-Pipeline auf der Entscheidung von demuxer basierte schicken würde?

Oder vielleicht gibt es einen Weg (aus Gründen der Klarheit) „Subkanäle“ mit ihren eigenen Pipelines irgendwie zu schaffen?

Antwort

2

Es gibt keine Unterstützung für „verschachtelte Pipelines“ vor. Es kann Teil von 4.1.0 sein. Für jetzt müssen Sie Handler im laufenden Betrieb entfernen/hinzufügen.

See [1] für ein Beispiel.

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

+0

Was jetzt? Wird immer noch nicht unterstützt? –

+0

nein ... es gibt immer noch keine Unterstützung. So –

+0

, um irgendeine Art von Multiplexing zu implementieren ich hinzufügen müssen/entfernen Handler on the fly? Scheint etwas Latenz einzuführen ... Vielleicht gibt es einen besseren Weg? –