根据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"}
]
}
第二条消息有错误类型Unavailable
,应该重新发送。根据文档,Retry-After
如果标头包含在 GCM 服务器的响应中,我们应该尊重标头。
我有两个问题:
Retry-After
标题是否始终可用?也在响应状态200
?- 在这种情况下,实际上是否有可能只重发一条消息?我应该只重新发送这条消息还是全部重新发送?