GCM服务器的接收方如何使用collapse_key检测消息是否已被GCM服务器“折叠”?有没有反馈?还是最佳实践?
目标是为“send_to_sync”模式创建最佳(最便宜)的实现,其中客户端仅在错过消息时“同步”。
实施例: 假设一组10个设备通过GCM消息在其确切位置上相互更新。只有最新的更新是相关的,所以让每个用户拥有自己的折叠键会很好。由于使用GCM时4个折叠键的限制,您无法为每个用户使用折叠键,因此您必须创建自己的系统并使用“send_to_sync”模式。 如果每条“send_to_sync”消息包含最新的更新+指示是否有任何遗漏消息,那将是很好的,如果没有,则不需要同步。
答案 0 :(得分:2)
接收方可以通过在有效负载中包含某种计数器来检测消息已被折叠。每次服务器向设备发送GCM消息时,它都会将该计数增加一。当设备收到消息时,它会将该计数与之前收到的计数进行比较。如果计数增长超过一个,则需要同步。