背景:
接続されたチャネルのサーバー側レジストリを維持したいのですが、このレジストリを、接続されたチャネルごとに一意の既知の名前/IDでKEY化する必要もあります。
したがって、接続されている各チャネルのキーとして文字列IDを使用します-(つまり、クライアントとサーバーの両方がそれを認識していますが、GUIDではありません)。
クライアントが接続し、サーバー側ハンドラーのchannelActiveメソッドが呼び出されたときに、このChannel IDをChannelHandlerContextからプルして、この(ID、Channel)ペアを格納します。
クライアントまたは何らかの障害によってチャネルが切断された場合、マップから(ID、チャネル)ペアを削除します。
質問:
このアプリケーションデータをクライアント側のConnect呼び出しで渡して、サーバー側のハンドラーがchannelActiveメソッドでこれを読み取れるようにする方法はありますか?
これは「接続時」でのみ実行できますか?これは純粋にチャネルの接続/切断の識別のためであるため、このロジックを実際のメッセージ処理に追加することは避けたいと思います。
ありがとう