GCM のドキュメントによると、次のタイプの結果メッセージを取得できます。
{ "multicast_id": 216,
"success": 3,
"failure": 3,
"canonical_ids": 1,
"results": [
{ "message_id": "1:0408" },
{ "error": "Unavailable" },
{ "error": "InvalidRegistration" },
{ "message_id": "1:1516" },
{ "message_id": "1:2342", "registration_id": "32" },
{ "error": "NotRegistered"}
]
}
2 番目のメッセージにはエラー タイプUnavailable
があり、再送信する必要があります。ドキュメントによると、Retry-After
ヘッダーが GCM サーバーからの応答に含まれている場合は、ヘッダーを尊重する必要があります。
2 つの質問があります。
Retry-After
ヘッダーは常に利用可能ですか? ステータス付きの応答でも200
?- この場合のように、メッセージを 1 つだけ再送信することは実際に可能ですか? このメッセージのみを再送信する必要がありますか、それとも一括して再送信する必要がありますか?