0

これは、ソースを含むすぐに使用できるソリューションに関する質問ではなく、ソリューションのアイデア/ヒント/ヒントを得るための質問です。

メッセンジャーがいるとします。ユーザー A は、ユーザー B に送信する必要があるテキストを入力します。このテキストは、最初に中央サーバーに送信され、ユーザー B がオンラインでないときに保存されるか、ユーザー B が利用可能になったときにすぐに送信する必要があります。

2 番目のケースでは、ここでモバイル デバイスでどのメカニズムを使用する必要がありますか?

1.) ユーザー B のメッセンジャーがサーバーへのクライアント接続を開いて、そこから永続的にデータを受信するのは、私にはよく聞こえません。接続が中断された場合、再確立する必要があります - 次の中断まで可能です。そのため、このような接続を確立すると、トラフィックが発生し、間にペイロードを転送することなく電力が消費される可能性があります。

2.) メッセンジャーに ServerSocket を使用させ、中央の「サーバー」にデバイスへの接続を許可すると、同じ問題が発生します。接続が中断される可能性があります。

だから私の質問: 利用可能な場合にのみそのようなメッセージを送信し、必要な場合にのみ接続を確立するモバイル デバイスで利用可能なメカニズムはありますか? クライアントとサーバー間の永続的な接続のない自動プッシュ通知のようなものですか?

4

3 に答える 3

0

いずれか 1. クライアントとサーバーの間に永続的な接続を確立します。クライアントは、事前定義された間隔でポーリングして、着信ペイロードを確認できます。頻繁な「ポーリング」ペイロードを避けるために、「ポーリング」ロジックを最適化する必要がある場合があります

または

  1. サーバー側は、メッセージが利用可能になったときに WAP プッシュをクライアントにプッシュすることができ、クライアントはウェイクアップしてペイロードを取得します。
于 2013-09-30T11:04:29.323 に答える
0

ポーリングを使用しないでください。Google クラウド メッセージングを使用します。「Here」リンクで廃止された gcm への suseba の回答参照。

GoogleCloudMessaging を使用します。GooglePlayService ライブラリが付属しています

ドキュメント : http://developer.android.com/google/gcm/client.html

ソースはhttps://code.google.com/p/gcm/source/browse/#git%2Fgcm-clientです。

ライブラリをインポートするだけです

于 2013-09-30T15:06:19.993 に答える