2

私はnettyを学んでおり、例から次のコードがあります

ChannelPipeline pipeline = pipeline();
// Enable stream compression (you can remove these two if unnecessary)
pipeline.addLast("deflater", new ZlibEncoder(ZlibWrapper.GZIP));
pipeline.addLast("inflater", new ZlibDecoder(ZlibWrapper.GZIP));

// Add the number codec first,
pipeline.addLast("decoder", new BigIntegerDecoder());
pipeline.addLast("encoder", new NumberEncoder());

// and then business logic.
// Please note we create a handler for every new channel
// because it has stateful properties.
pipeline.addLast("handler", new FactorialServerHandler());

私の質問は、デフレーター、インフレータ、デコーダー、エンコーダー、ハンドラーなど、addLast メソッドの有効な最初のパラメーターのリストをどこで確認できるかということです。

また、マッピングが実装されているソース コードの場所が見つかりません。ここでは、メッセージが到着し、ChannelPipeline がデフレーターが設定されていることを確認し、ZlibEncoder.GZIP メソッドを呼び出すことを意味します。

4

2 に答える 2

2

名前は何でもかまいません。キーワードではありません。つまり、「encoder」と呼ぶことは、「awesome_encoder」と呼ぶことと同じです。

ハンドラーは、addLast を呼び出した順序でチェーンに追加されます。インバウンド チェーンまたはアウトバウンド チェーンに追加されるかどうかは、 ChannelInboundHandler または ChannelOutboundHandler を実装するかどうかによって異なります

ここにいくつかの良い情報があります: https://docs.jboss.org/netty/3.2/api/org/jboss/netty/channel/ChannelPipeline.html

于 2014-03-22T05:21:39.080 に答える