2012-01-21 17 views
0

シンプルなネットサーバーを想定してください。Netty:2つのチャネルを接続する

最初のクライアントが接続すると、そのチャネルが覚えています。 2番目のクライアントが接続している場合は、最初のチャネルに書き込むようにします。つまり、最初のチャネルに書き込まれたすべてが2番目のチャネルに書き込まれ、逆も同様です。

このシンプルなアプリケーションは、telnetからtelnetへのチャットのようなものです。

答えて

2

両方のチャネルをDefaultChannelGroupに追加し、その参照を格納します。次に、チャンネルに書き込む場合は、ChannelGroupのwrite(...)メソッドを呼び出します。

+0

ChannelGroupに書き込まれたメッセージは、グループ内のすべてのクライアント、つまり発信者に送信されませんか。 – Dennis

+0

はい、両方の側にメッセージを送信します。 –

0

私が知っているように、2つのソケットチャネルを接続するためのストレートフォワード方法はありません。 (ただし、非ソケットチャンネル、LocalChannelを使用する2つのローカルチャンネル、IOStreamChannelを使用する任意の入力出力ストリームを接続する方法があります)。

この問題は、channelConnected()、channelDisconnected()、およびmessageReceived()のハッシュテーブルにチャンネルを追加/削除する、パイプラインにブリッジチャンネルハンドラ(extends SimpleChannelHandler)適切なピアチャネルを作成し、それにメッセージを書き込みます。

関連する問題