1

Google クラウド メッセージング (プッシュ メッセージ) の問題。
私は 2 つのスマートフォン (HTC Sensation XE、Desire HD) とタブレット (Samsung Galaxy Note 10.1 Wifi) を持っています。
GCM プッシュ メッセージを受信するのに 15 分近く待たなければならないことがあります。GCM プッシュ メッセージをすぐに (30 秒以内) 受信することがあります。
それは正常ですか?それとも、私が Wi-Fi に接続されているからですか?
正常な場合、サーバーからメッセージを取得するために使用できる「ロングポーリング」のような他のサービスはありますか?
現在、GCM+Polling(AlarmManager) を使用してリモート サーバーからメッセージを取得しています。
提案やより良いアイデアはありますか?

以下は私のテスト結果です
。左側はサーバーの送信時間で、右側はクライアントのモバイル受信時間です。
テスト結果はすべてWifi接続環境下での結果です。
==========================
HD 23:10:18, 23:24:XX

西暦 23:11:21、23:22:44

注 23:10:20、23:14:54

==========================
HD 00:08:12, 00:08:27

XE 00:07:55、00:07:58

注 00:08:04、00:13:35

==========================
HD 00:40:21, 00:55:22

正午 00:39:56、00:40:14

注 00:40:13、00:40:59

ありがとう!!

4

3 に答える 3

0

ここで私の答えを読んでください:

Google Cloud Messaging - メッセージは即座に受信されるか、長時間の遅延で受信されます

基本的にはtcpタイムアウトの問題です

于 2014-03-08T16:55:29.753 に答える
0

次のコードを使用して、手動でハートビートをトリガーして接続を維持できます。一部のネットワーク ルーターは、特定の時間 (場合によっては 5 分間) アイドル状態になると、アイドル状態のソケット接続を自動的に切断します。接続が閉じられた場合に接続が再確立されるように、5 分ごとにコードを実行します。ただし、明らかに間隔を短くすると、バッテリーの消費量が少し増えます (最近のスマートフォンには mAh の高いバッテリーが搭載されているため、ここでどれだけ関連があるかはわかりません)。

getApplicationContext().sendBroadcast(new Intent("com.google.android.intent.action.GTALK_HEARTBEAT"));
getApplicationContext().sendBroadcast(new Intent("com.google.android.intent.action.MCS_HEARTBEAT"));
于 2016-04-06T17:57:19.363 に答える