2016-04-04 6 views
0

Netty(4.0.34)でユーザーが生成したイベントを処理する場合、fireUserEventTriggered(event)ChannelHandlerContextに使用します。Nettyユーザーイベント

呼び出し時メソッドuserEventTriggered(final ChannelHandlerContext ctx, final Object evt)パイプライン内の次のハンドラの次の場所で、生成されたイベントを引き続き処理できます。

しかし、次のハンドラのuserEventTriggeredメソッドでは、透過ハンドラに格納されているAttributeMapにアクセスできません。 nettyはユーザーイベントの新しいコンテキストを作成しますか?

+0

属性マップにアクセスするコードを表示できますか? – Ferrybig

+0

あなたが提供した情報に基づいて質問に回答しました。あなたが達成しようとしていることの例をいくつか挙げておけば、コード例の答えを改善することができます。 –

答えて

2

AttributeMapは、ハンドラ単位で定義されています。これは、与えられたハンドラとパイプラインの組み合わせの状態を格納する方法であり、複数のパイプラインにハンドラを追加することができるため、特定のハンドラインスタンスにも複数のChannelHandleContextが関連付けられます(JavaDocに指定されています)

与えられたハンドラのChannelHandlerContextインスタンスにアクセスすると、与えられたパイプラインのハンドラの状態にアクセスしています。

ハンドラ間でデータを転送する方法の1つは、転送するデータを格納するようにユーザーイベントをモデル化し、後で後続のハンドラで取り出すことです。