2
的情況是這樣的:如果設備令牌更改,如何將推送通知發送到多個設備(屬於一個用戶)?
- 用戶登錄到他們的iPhone上
- 用戶登錄應用程序中使用iPhone B上的相同的應用程序現在
,在數據庫,一個用戶有2個令牌,這是正確的。
+---------+-------------------+
| user_id | device_token |
+---------+-------------------+
| 1 | 1st_device_token1 |
| 1 | 2nd_device_token1 |
+---------+-------------------+
說,該用戶刪除的應用程序,再次安裝它(在兩個設備上),這意味着,在APN的令牌改變,因此在我們的數據庫中,有4個獨特的標記。
+---------+-----------------------+
| user_id | device_token |
+---------+-----------------------+
| 1 | 1st_device_token1 |
| 1 | 2nd_device_token1 |
| 1 | 1st_device_token1_new |
| 1 | 2nd_device_token1_new |
+---------+-----------------------+
現在,該用戶的推送通知將被髮送到4個設備(4個令牌)。 如果他們繼續刪除和安裝應用程序(可能會發生:)),我會在數據庫中爲一個用戶提供大量令牌,並認爲他們擁有如此衆多的設備,而實際上,有一個很多無效的令牌。
如何防止?
來自推送服務器的反饋信息從來都不是很好,但我認爲它現在已經有了很大的改進。您是否檢查了最新文檔,瞭解當您發送推送時服務器返回的信息是否包含推送令牌是否無效或推送無法送達的信息?但無論如何,這不是一個邊緣案例。雖然它可能,誰實際上要刪除和重新安裝應用程序很多次,它會導致數據庫中的「大量」條目? – Gruntcakes