オリジナル:https://www.cnblogs.com/ruber/p/10186571.html
この記事では、これだけは理解していないか、コードのデコードを追加するのか分からないので、実行順序発行パイプラインについて話をしたい、混乱や物事のようにシリーズを追加することではありません
1 pipeline.addLast(新しいoutboundsHandler1())。// OUT1 2 pipeline.addLast(新outboundsHandler2()); // OUT2 3 4 pipeline.addLast(新しいInboundsHandler1())。// in1の 5 pipeline.addLast(新InboundsHandler2()); //平方インチ 6 pipeline.addLast( "ハンドラ"、新HelloServerHandler()); //立方インチ
データを読み、最も基本的で起動し、データは、実行順序をデコードし、同じ注文IN1に登録する必要があります - > [IN2 - > ctx.fireChannelRead(MSG)によって、それらの間の立方インチ;渡さ
変換>のうち - 復号化された論理処理、ctx.writeAndFlushを介したデータ伝送は、()内から終了します
伝達関数; - シス - アウトは逆の順序で実行し、登録されている、すなわち、OUT2>との間の転送は、シーケンシャルctx.writeAndFlush()を介してOUT1
ctx.channel()。writeAndFlush()和ctx.writeAndFlush()区别
彼はinhandlerの前で最後の1を入れなければならない、と言うouthandlerオンライン登録(この例では立方インチ早い)、実際には、正確ではない、など
1 pipeline.addLast(新しいInboundsHandler1())。// in1の 2 pipeline.addLast(新InboundsHandler2()); //平方インチ 3 pipeline.addLast( "ハンドラ"、新HelloServerHandler()); //立方インチ 4 5 pipeline.addLast(新outboundsHandler1()); // OUT1 6 pipeline.addLast(新outboundsHandler2()); // OUT2
例えば、私はctx.writeAndFlush()が前方に移動するために、現在のノードからクラスハンドラを見つけることですので立方インチが、実行はctx.writeAndFlush()は、何が起こるか、outhandler、呼び出さない場合は、実行を受け、ノードから、登録の背中を出します背後にある現在のノードに登録
この場合、彼はctx.channel()writeAndFlush(実施すべきouthandler処理を実行するために取得するためには);.これは、クラスハンドラを見つけるために、リストの前方開始端で、これは2種類の違いであるwriteAndFlush
この引数は、状況下で、あるいは深い理解にを使用するためにオンラインctx.writeAndFlush()一つの方法を使用することです!
アウト通常ChannelOutboundHandlerAdapterから継承されてエンコードするために使用することができます
ChannelInboundHandlerAdapterから継承さで、通常は復号化するために使用