私は現在、トルネードのhl7プロトコル用の非同期tcp-forwarderを作成しています(基本的に、メッセージは別のエンドポイントに転送され、ソケットは開いたままです)。
現在、実装はTCPServerのインスタンスであり、そのチャネルは別の宛先に接続します。したがって、ソケットにはs1<->s2とs3<->s4があります。ここで、s1はクライアント、s2はTCPServerインスタンスによって受け入れられるソケット、s3はフォワーダー、s4は実際に通信するエンドポイントです。
ここで、s4がエラーを発行し、チャネルを閉じると仮定します。IOStreamのソケットオブジェクトs3では、エラーはたとえばECONNREFUSEDに設定されます。
このエラーを伝播して、クライアントs1に何が起こったかを伝えるにはどうすればよいですか。基本的に、何が起こったかを示すために、エラー(またはその他のエラー)でソケットs2を閉じたいと思います。これはチャネルが設定されている間に発生し、これはs1とs2の間ですでに発生しているため、ECONNREFUSEDである必要はありません。
ありがとうmarkus