2008-08-25 37 views
-1

私はサーバーへの永続的な接続を望むアプリケーションがあるとします。リソース(電力/帯域幅)を無駄にしないように接続/再接続ロジックを実装するにはどうすればよいですか?接続通知のみを使用すると、ローカルネットワークに関連しない問題に悩まされる可能性があります。接続通知でロジックを再接続

私にC#のバージョンを見せることができたらボーナス。

答えて

1

これは非常に "巨大な"質問です。私はO/Rマッパーを使い、データベースにはそれぞれの "クエリ"にPersistenceBrokerというオブジェクトが必要だと言うことができます。このクラスは、接続、認証などに関するすべてのDB Stuffを担当しています。

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

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

必要に応じて、ネットワークヘルスモニタのすべてのコードを表示できます。私はGoogleからいくつかのビットを取った他は自分自身を作った: