如果我向设备发送通知,并且该设备处于脱机状态,我会发现:
Error: Unavailable
我必须重发.
我的问题是:
GCM服务器会将这些通知保留在队列中,并在设备联机时自动重新发送?或者我必须完全处理.
因为如果GCM服务器将自动发送(一旦设备在线),直到它实际发送通知,我的服务器假定它们已经被发送.如何跟踪通知重新成功的时间?
我可能会在我的服务器端标记通过查看不可用的错误消息发送通知,但是不能在GCM成功发送通知之后将其标记为发送.
谢谢
解决方法
A / c到文档—当第三方服务器向GCM发送消息并接收到消息ID时,并不意味着消息已经传递到设备.相反,这意味着它被接受交付.消息在接受后会发生什么取决于许多因素.
如果设备连接但空闲,则除非delay_while_idle标志设置为true,否则该消息将立即被传送.否则,它将被存储在GCM服务器中,直到设备唤醒.这就是collapse_key标志起作用的地方:如果已经有一个消息具有相同的折叠键(和注册ID)存储并等待传递,旧消息将被丢弃,新消息将占据它的位置(也就是说,旧邮件将被新的邮件折叠).但是,如果未设置折叠键,则将存储新旧邮件以供将来投放.
注意:在不折叠的情况下可以存储多少条消息有一个限制.该限制目前为100.如果达到限制,所有存储的消息都将被丢弃.