2013-02-27 147 views
8

我有一個基於Google Cloud Messaging的應用程序,它運行良好。現在(今天)突然間開始出現我們以前從未見過的問題。對於在設備之間發送的每條消息,接收設備將獲得兩次。第一個將幾乎立即到達(在不到3秒內發送)。第二個幾分鐘後到達。測試中有兩個設備,問題與發送者/接收者無關。所以如果一個設備向另一個發送一些消息,另一個會立即得到它們 - 但是稍後,它會收到一大堆消息,這是它收到的消息的第二個副本。GCM重複消息

我已經放入斷點以確保發送設備不是罪魁禍首:消息只發送一次(即發送的Web服務只被調用一次 - 後端的代碼運行在Google App Engine上,它的年齡並沒有改變。)然而,消息以某種方式被傳遞給接收設備兩次。通過使用斷點,我還確保我們在接收方的代碼不負責任:驗證GCMIntentService::onMessage()的確針對每個發送的消息調用了兩次。

我們也確保我們數據庫中的註冊ID是最新的。在這一點上,我很困惑,需要想法取得進一步的進展。那麼有什麼想法?

+0

我不能確認這是一個用戶。大約7個小時後,我收到每封郵件兩次。來自Facebook,Gmail等。非常沮喪...我懷疑gcm – aeno 2013-02-27 03:15:16

+0

Aeno:感謝您的確認。您是否可以編輯您的帖子來說「可以確認」而不是「不能」 - 這就是您的意思。谷歌Android團隊的任何人都在看這個空間?有沒有官方的話? – user2113392 2013-02-27 03:50:49

+1

同樣在這裏。自昨天起,我們仍在開發中的應用程序會收到重複的消息。 – swehrli 2013-02-27 11:05:46

回答

0

我們也有同樣的問題,我們相信我們不會發送消息兩次。 這可能是涉及到怎麼在這裏解釋關於「規範標識」的問題:http://developer.android.com/google/gcm/adv.html

[...]然而,如果在應用程序中的錯誤觸發多個註冊同一設備,它可以是很難調和狀態,你可能會以重複消息結束。

0

同樣的問題在這裏。我們有很多與MyMalcom和Urban Airship集成的應用程序,並且自從星期一以來,所有這些應用程序都會推送兩次。我們也檢查了Ferran建議的canonicalId變化,但是交付給GCM的消息是可以的(沒有無用的Id變化)。