0

サーバーとしてミニPCに接続された、いくつかのモーションディテクターと温度センサーを備えたホーム監視および制御システムを実装しました。この PC には、検出器の状況と環境温度を返すいくつかのメソッドを持つ .NET ASMX Web サービスがあります。

デバイスの状況を実現するために、Wifi 経由で Web サービスに接続して温度を表示できる Android アプリケーションを構築しようとしています。温度が臨界範囲を超えた場合、またはモーション検出器がモーションを検出した場合、このアプリケーションは関連する通知を表示する必要があります。

ここでの問題は、システムの状況が必要になるたびに、Web サービスにクエリを実行することです。しかし、この方法では、温度が臨界範囲を超えたかどうか、および検出器が動きを検出したかどうかを知るために、1 秒ごとに Web サービスにクエリを実行する必要があります。質問:これを達成するためのより良い解決策はありますか? または、イベントが発生したときに Web サービスがクライアントに通知できる方法はありますか?

Android アプリで KSOAP2 ライブラリを使用していることに注意してください。

前もって感謝します

4

2 に答える 2

1

サーバーをポーリングして新しいデータを確認する代わりに、プッシュ通知パターンの使用を検討する必要があります。

ここにはいくつかのオプションがあります。最も簡単で標準的な方法は、Google Cloud Messaging (GCM) と呼ばれる Google のプッシュ通知システムを調べることです。これは、Google サービスを備えたデバイスでのみ利用できることに注意してください (たとえば、Kindle Fire を使用している場合は、'使わない)

または、MQTT プロトコルに基づくプッシュ通知のより特別なバージョンを検討することもできます。独自の MQTT サーバーをセットアップし、MQTT サーバーと通信する Android コードとサーバー コードを用意する必要があります。

データが変更されるたびに、サブスクライブしているクライアントにプッシュ通知を送信して、常にデータをチェックする必要がないようにします。

于 2013-03-28T22:38:41.940 に答える
0

プッシュ サービス、つまりhttp://developer.android.com/google/gcm/index.html ただし、プッシュには一定の制限があります。2 回目の呼び出しごとにその制限がなくなると思います。たぶん、5秒ごと、または10秒ごとにリクエストを送信するだけですか? その速度でも部屋の温度は変わりません:)

于 2013-03-28T22:38:37.547 に答える