GCM を Android アプリケーションに統合し始めました。スタートアップ チュートリアルの助けを借りて、サンプル デモをセットアップしました。また、サーバーがメッセージを GCM に送信するときに受信するさまざまな応答ステータスも理解しました。これは、サーバーと GCM サーバー間の通信のステータスを示していると思います。
私の質問は、GCM サーバーと Android アプリケーション間の通信のステータスを取得する方法はありますか? 基本的には、意図したメッセージが正常に配信されたかどうかを示す確認応答です。また、time_to_live フラグが設定されていない限り、デフォルトのタイムアウトは 4 週間であることも読みました。これにより、GCM がキューを維持し、メッセージの配信を確実に保証することが理解できます。
ただし、信頼性を確保するために、サードパーティのサーバーとして、同じメッセージの送信を再試行する必要がありますか (GCM インフラストラクチャによって処理されていない場合)。再試行を処理する必要がある場合、失敗を判断する方法は?
私が持っている1つの方法は、プッシュIDを定義してメッセージと一緒に送信することです。受信すると、AndroidアプリはそれぞれのプッシュIDでサーバーを報告します。指定された時間内に応答が受信されない場合、サーバーはメッセージの送信を再試行します。このアプローチは、投稿の 2 番目の回答で定義されており、GCM (特に QA チーム) にかかる時間を監視するのに役立ちます。