我有一个基于 Google Cloud Messaging 的应用程序,它运行良好。现在(今天)突然之间它开始出现我们以前从未见过的问题。对于设备之间发送的每条消息,接收设备将获得两次。第一个将几乎立即到达(在发送后不到 3 秒内)。第二个在几分钟后到达。测试中有两台设备,无论哪一台是发送方/接收方,问题都是一样的。因此,如果一个设备向另一个设备发送一些消息,另一个设备将立即收到它们 - 但稍后,它将收到一连串消息,这是它收到的消息的第二个副本。
我设置了断点以确保发送设备不是罪魁祸首:消息只发送了一次(即发送的网络服务只调用了一次——以及在 Google App Engine 上运行的后端代码,很久没有改变了。)但是,消息以某种方式被传递到接收设备两次。通过使用断点,我还确保我们自己的接收端代码不负责:已验证GCMIntentService::onMessage()
确实为每个发送的消息调用了两次。
我们还确保我们数据库中的注册 ID 是最新的。在这一点上,我很困惑,需要想法来取得进一步的进展。那么有什么想法吗?