0

netty チャネルでさまざまな種類のメッセージを送信する必要があり、これらは送信前にエンコードする必要がありますOneToOneEncoder。netty チャネルに複数の を登録しており、それぞれencodeが単一の種類のメッセージに作用することになっています。msg のタイプを確認し、この encoding の正しいタイプである場合はエンコードし、( encoding の) 特定のタイプでない場合は msg をそのまま (変換せずに) 返します。これは有効な設計アプローチですか?

私が直面している問題は次のとおりです。これにより、IndexOutOfBounds のようなさまざまなダウンストリーム例外 (デコーダーで) が発生することがあります。

さらに難しいのは、正しく機能する場合があることです。エンコード/デコードでめちゃくちゃになっているものがあると確信しています。ここで明らかな間違いはありますか?

編集:私の質問は、一般的な設計アプローチについてです..それが正しければ、自分でコードのバグに取り組むことができます..

4

1 に答える 1

1

ChannelPipeline には複数の OneToOneEncoder を含めることができます。ダウンストリーム イベントは任意のスレッドから送信できるため、これらがスレッド セーフであることを確認してください。

于 2012-05-14T12:30:34.887 に答える