1

wsDualHttpBindingを介した二重通信を使用しています。

サーバーにログインする各クライアント、GUID、およびコールバックチャネルが作成され、辞書に保存されます。(非常に標準的なアプローチ)

クライアントが予期せずシャットダウンしたことをサービスが検出する方法が必要です。サーバー側で障害のあるハンドラーの関数をフックしようとしましたが、呼び出されません。

wsDualtHttpBindingのコールバックとクライアントチャネルに異なるチャネルを使用しているため、サーバー側で接続が半分開いているためだと思います。

助言がありますか?

4

1 に答える 1

2

私はあなたがこれに対する解決策を得るつもりはないと思います。WS *互換性が必要ない場合は、HTTPロングポーリングと同様に、クライアントとサーバー間でハートビートパケットを定期的に送信するカスタムバインディングとチャネルを作成できます。いくつかのハートビート(たとえば2)が失われた場合、もう一方の端が切断されたと想定します。そうしないと、タイムアウトになるまで、サーバーがクライアントが予期せず切断されたことを知る方法がありません。

于 2012-02-18T05:23:14.077 に答える