2012-02-22 1 views
0

...複数のデリミタベースのフレームデコーダをNettyに追加する方法...............?私は、この形式の文字列データのストリームを取るために<strong>ネッティー</strong>を使用してい

   string1#st2|st3|st4..|....| 

私は\ n個で区切られた文字列のこの種の複数のブロックを取得し、私がしたいですまずそれらのチャンクと、特定の文字列を...分ける

私の問題は、私は区切り文字として\ nに区切り文字ベースのフレームデコーダを使用している場合、私はどのようにすることができますproblem..Butせずに文字列を区切ることができるということです私は文字列tokenizを使用せずに文字列の残りの部分を区切ります...複数のデリミタベースのフレームデコーダを複数追加する方法はありますか?私は最初にstring1の情報を処理し、それに基づいて残りの文字列を処理したいからです....もし文字列1を区切るためのデコーダを書くと、文字列tokenizingを使わずに残りの文字列を区切る方法がありません...

ありがとう...

編集

は、サーブレットコンテキスト内のオブジェクトのように..チャンネルでオブジェクトを永続化する方法ですが.......

答えて

0

ますDelimiterBasedFrameDecoderインスタンスをChannelPipelineに2つ(または必要に応じてさらに)追加するだけで、これを行うことができます。最初に '\ n'で区切ったものを入れてから、もう一方を追加してください。これはうまくいくはずです。

+0

はい、私はそれをやったし、それが事をworked..but私は文字列1を維持し、その後、残りの部分にデコードを行いたいということです...問題があります私はすぐにstring1のロジックを処理するためにハンドラを置いた後、別のDelimiterBasedFrameDecoderをStringの残りの部分をデコードすることはできません。 – Pradeep

+0

あなたの問題を解決できません。ビットはより詳細に? –

+0

私が知りたいのは、Stringを返す別のデコーダの後にDelimiterBasedFrameDecoderを置く方法です...? – Pradeep

0

netty 5では、カスタマイズされた属性を直接サーブレットのコンテキストのようなチャネルに設定できます。

チャネル属性を使用すると、デリミタのパイプラインを通じて、区切られた部分文字列(フォーマットされた結果など)を永続化した後、残りの文字列を常に処理できます。ここで

はサンプルが参照できます:Using channel attributes in different context handlers

関連する問題