GCM 在服务器上多次收到相同的消息

Posted

技术标签:

【中文标题】GCM 在服务器上多次收到相同的消息【英文标题】:GCM same message received multiple times on server 【发布时间】:2015-05-29 16:57:32 【问题描述】:

我已经实现了 GCM CCS 服务器-客户端架构,它发送上游消息。这很有效,但有时会多次收到相同的消息。我在网上搜索,但我没有找到任何关于这个问题的好的解释。当手机连接不良需要一些时间才能收到 ACK 时,是否会发生这种情况?有什么解决方案可以解决这个问题?

【问题讨论】:

【参考方案1】:

由于同一设备有两个或多个 Google 注册 ID,我们遇到了相同的问题及其原因,请检查您的代码验证以避免这种情况。

我不太确定要花多少时间,但 Google 检测到注册 ID 确实来自同一设备,然后继续取消注册,只留下一个。

【讨论】:

那么问题是一台设备有多个注册ID?你做了什么来解决这个问题? 所以可能的解决方案是当用户更改他的个人资料时,我称之为取消注册?那么这可能是一个可行的解决方案吗? 嗨!对不起,我很忙。您必须存储注册 ID,可能您有时需要一个新的注册 ID,这将是问题所在。是的,您可以调用 GoogleCloudMessaging.unregister(),记住您必须等待几分钟才能传播。 但是怎么可能存储更多的 reg id 呢?我只记得偏好中只保存了一个id?那么如何从一台设备发送多条消息? Google 会保存在该设备上注册的所有 regid 吗?当您调用注销时,它们会在 GCM 一侧被删除?是所有 reg id 都被删除还是只删除最后一个?

以上是关于GCM 在服务器上多次收到相同的消息的主要内容,如果未能解决你的问题,请参考以下文章

即使所有消息都从服务器成功,某些设备也不会收到 GCM 推送

Android:我在哪里可以在服务中实现 socket.on(...)?我多次收到相同的消息

对于某些 android 设备,GCM 消息在 GCM 服务器上停留在“已接受”状态

GCM 多次推送同一消息 (PushSharp)

GCM:在多个设备上使用相同的帐户 - 会发生啥?

(新)GCM 消息收到,但如何解析?