GCM重复消息

8
我有一个基于Google云消息传递的应用程序,一直运行良好。但突然间(今天)出现了我们从未见过的问题。对于每个设备之间发送的消息,接收设备都将收到两份。第一个几乎瞬间到达(在发送后不到3秒内)。第二个则几分钟后才到达。测试中有两个设备,无论哪一个是发送者/接收者,问题都是相同的。因此,如果一个设备向另一个设备发送几条消息,那么另一个设备将会几乎立即接收到这些消息 - 但随后它将在稍后的时间内接收到一大堆消息,这些消息是它已经接收到的消息的副本。
我设置了断点以确保发送设备不是罪魁祸首:该消息仅被发送了一次(即仅调用了发送的Web服务 - 而运行在Google App Engine上的后端代码已经很长时间没有更改过)。但是,该消息不知何故传递到接收设备两次。通过使用断点,我还确定了我们接收方代码不是问题的原因:验证了每条发送消息确实会触发GCMIntentService :: onMessage()两次。
我们还确保了数据库中的注册ID是最新的。目前我陷入困境,需要您的建议以继续推进。有什么好的想法吗?

作为用户,我无法确认这一点。大约七个小时以来,我收到的每条消息都会出现两次,包括来自Facebook、Gmail等应用的消息。非常令人沮丧...我怀疑这是gcm出了问题。 - aeno
Aeno:感谢确认。您能否编辑您的帖子,将“不能确认”改为“可以确认” - 这是您的本意。有没有来自Google Android团队的人在关注这个问题?是否有任何官方消息? - user2113392
1
一样的问题。我们还在开发中的应用程序自昨天起开始接收到重复的消息。 - swehrli
@user2113392:是的,我确实意思是“能”,但编辑时间已经过了... ;) 看起来问题已经被谷歌修复了。 - aeno
3个回答

5

点击此处查看官方GCM讨论帖。每个人都遇到了这个问题,这是谷歌的错!


谢谢约翰。今天看起来已经修复了。 - user2113392

0
我们也遇到了相同的问题,并且确定我们没有发送两次消息。这可能与“规范ID”在这里解释的问题有关:http://developer.android.com/google/gcm/adv.html

[...] 然而,如果应用程序中的错误导致同一设备进行多次注册,那么很难协调状态,你可能会收到重复的消息。


0

我这里也有同样的问题。我们有许多应用程序与 MyMalcom 和 Urban Airship 集成,自周一以来所有这些应用程序都会收到两次推送。我们已经检查了 Ferran 建议的 canonicalId 更改,但发送到 GCM 的消息正常(没有更改 canonical Id)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接