2012-12-04 120 views
0

我正在使用Uniqush將GCM消息發送到正在開發的應用程序,到目前爲止這工作得很好。但是,由於顯而易見的原因,我正在開發時卸載並重新安裝該應用程序,並且每次新安裝都會重新註冊GCM。來自Uniqush的重複的GCM消息

我明白GCM是應該自動處理:

http://developer.android.com/guide/google/gcm/adv.html#unreg

如果消息不能被傳遞到設備,它發送一個錯誤到服務器,處理它。不幸的是(即使在未安裝應用程序的情況下發送測試推送消息之後),我收到了重複消息到我的設備。

這是Uniqush,我的程序,GCM還是三者的組合?

回答

0

如果在卸載應用程序時向設備發送通知,則最終將顯示重複項。

0

鑑於你的描述,我無法重現你的情況。以下是試圖重現它的步驟:

  • 在我的手機上安裝測試應用程序,並使用uniqush將其通知給它。正確。 Uniqush的日誌顯示它已成功發送,我的手機顯示正確的結果。
  • 卸載測試應用程序。
  • 使用uniqush再次推送另一個通知。 Uniqush的日誌顯示的消息稱該用戶退訂服務:(因爲它已經被刪除)[Unsubscribe][Info] 2012/12/21 19:18:08 [UnsubscribeRequest] RequestId=3992a14e4987e94e3ce16bb7394ee06d2d9e7231 Success DeliveryPoint=gcm:47e6551857be173b1418e56b63dbdb8cd58c94a2
  • 然後推一個更通知裝置,uniqush說,它無法找到該設備
  • 檢查使用redis-cli數據庫,該設備的信息不再存儲。它已成功取消訂閱。

但是,我確實發現了一些問題:如果您檢查從HTTP的uniqush返回的錯誤消息,那麼您將在第二次通知中看到Success。我已經在下一個版本中修復了這個錯誤。它很快就會上線了。 (如果您對此感興趣,請查看.deb package

事實上,uniqush旨在處理這種情況,以便用戶不需要關心取消訂閱,設備令牌/註冊ID更新等

如果您有任何疑問,請隨時發表評論或與我聯繫。