5

ポーカー デスクトップ ゲーム用の (複数) クライアント - (1) サーバー アーキテクチャがあります。コールバック チャネルを使用してコールバック通知を使用しています。

しかし、インターネット接続が切断されたために、特定のクライアントがサーバーから切断され、その特定のクライアントの WCF チャネルも失敗した状態になり、サーバーにある彼のコールバック チャネルも失敗することがあります。

シナリオ :

そのクライアントはゲームをプレイしていますが、インターネット接続が切断され、そのゲームが停止し、ゲーム ウィンドウが開いたままになり、インターネット接続が回復したときにそのクライアントはサーバーからドロップアウトされますが、そのプレーヤーのゲーム ウィンドウは引き続き開いており、そのプレーヤーは彼/彼女の WCF チャネルがドロップアウトされているため、何もしないでください。

特定のクライアントがサーバーから脱落し、「CommunicationObjectAbortedException」例外をスローしている間、そのクライアントのウィンドウを閉じたいと考えています。

以前の WCF チャネルのコールバック チャネルは、失敗した状態であるため使用できません。そのため、以下のコードを使用してドロップしながら、サーバーに新しい callbackChannel を作成しようとしました:

操作コンテキスト。現在の.GetCallbackChannel();

しかし、ここでは Current が「NULL」を表示しているため、そのプレーヤーの WCF チャネルが中止されているため、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーがスローされます。

中止された WCF チャネルのコールバック チャネルを使用するか、再初期化せずにその WCF チャネルを回復するか、新しいチャネルを使用してそのクライアントを呼び出す解決策はありますか?

4

1 に答える 1