1

ネティグル、

あるチャンネルの入力を別のチャンネルの出力に接続するためのショートカット/Netty-Utility/スマートトリックがあるかどうか疑問に思っていました。詳細については、次の点を考慮してください。

  1. Netty (http) サーバーのセットアップ
  2. 着信MessageEventのChannelBuffer を取得します
  3. そして、その入力NettyClient- ChannelBuffer (NettyServer の行に沿って設定する必要があります)にパイプします。

箇条書き 3を達成する方法に興味があります。
// mock messageReceived(ChannelHandlerContext ctx, MessageEvent e):
ChannelBuffer bufIn = (ChannelBuffer) e.getMessage();という行に沿って最初に考えたことからです。
ChannelBuffer bufOut = getClientChannelBuffer();// 別の場所に設定
bufOut.write(bufIn);


A. messageReceived-Event ごとにターゲット ChannelBuffer を決定する必要があるため、私には厄介に思えます
。 B. 低レベルのいじくり回し

私の願い/ビジョンは、接続
--> 1 つのチャネルの入力
--> 他のチャネルの出力に接続し、
追加のコーディングなしで I/O を実行できるようにすることです。

よろしくお願いします!

PS: 入力内容 (最初の HTTP 要求行に基づくマッピング) に応じて、さまざまな HTTP 要求をサーバー (1 つのエントリ ポイント) にディスパッチしようとしているときに問題が発生しました。明らかに、クライアントをサーバーにパイプバックする逆のトリックも実行する必要がありますが、前の質問の解決策と同様になると思います。

4

1 に答える 1

2

ビジネス ハンドラでマルチプレクサを使用する必要があるようです。ビジネスハンドラーはマップを持つことができます。キーを「最初の http 要求行」として、値をサーバーの出力チャネルとして使用します。ルックアップを実行したら、channel.write(channelBuffer);を実行するだけです。

また、bruno de carvalho のtcp tunnelも参照してください。これらの種類の要件に対処する方法について、より多くのアイデアが得られるかもしれません。

于 2011-12-02T17:38:33.477 に答える