-1

サーバーへの永続的な接続を必要とするアプリケーションがあるとします。リソース (電力/帯域幅) を無駄にせず、接続が表示/改善されたときに再接続時間を短縮するために、接続/再接続ロジックを実装するにはどうすればよいですか? 接続通知のみを使用すると、ローカル ネットワークに関係のない問題が発生する可能性があります。

C#バージョンを見せていただければボーナスです。

4

1 に答える 1

1

これは非常に「大きな」質問です。O/R マッパーを使用し、データベースへの各「クエリ」には PersistenceBroker というオブジェクトが必要であると言えます。このクラスは、接続、認証などに関連するすべての DB スタッフを担当します。

「動作中の」ブローカーを返す PersistenceBrokerFactory.GetCurrentBroker() を作成しました。DB が (何らかの理由で) 突然失敗した場合、CONN オブジェクトは 30 秒 (または定義したもの) 後に "timeout()" します。その場合、ユーザーにオフラインであることを示し、再接続ボタンを表示します。

一方、ユーザーが接続していることを視覚的に示すために、15 秒ごとにインターネット接続をチェックするスレッドをバックグラウンドで実行しています。google.com に対して 1 回の ping を実行します。;) それが失敗した場合、インターネットが何らかの理由で壊れていると想定し、ステータス バーを更新します。

ご希望であれば、ネットワーク ヘルス モニターのすべてのコードをお見せすることもできます。私はグーグルからいくつかのビットを取り、他の私は自分で作った:)

于 2008-08-25T14:39:11.480 に答える