2014-12-28 247 views
0

使用GCM時,每個App都有自己的註冊ID。這是真的嗎? 還是每個用戶都有自己的註冊ID?我需要知道,因爲 如果每個應用程序,我需要實現的東西 來處理用戶使用其他用戶的設備登錄 到應用場景一個註冊ID。我將所有註冊ID存儲在每個用戶的 數據庫中。因此,如果我例如具有:用戶的管理GCM註冊ID的

  • 設備的用戶B的
  • 設備B

和用戶B使用設備A現在登錄我必須更新註冊ID 在我的數據庫用戶B,它會設置爲應用程序的上 設備A.註冊的ID,這樣用戶A和B將暫時有SAM註冊ID,直到 用戶B再次Device B上登錄並更新我的數據庫。

我希望你明白我的意思,並告訴我如果我需要這樣做 確保每個用戶都能在他登錄其他設備時獲得他/她的推送通知。

難道是還從數據庫中刪除 註冊ID是一個好主意,當用戶註銷?

回答

1

登記ID的目的是提供應用程序的一個實例之間的設備上和你的服務器的連接,這樣就可以將消息路由到適當的設備。您可能需要單獨維護設備和用戶之間的關聯,以便在向用戶發送消息時,可以將該消息路由到屬於該用戶的所有設備;但是,從概念上講,您應該將註冊ID視爲在特定設備上標識您的應用程序(而非特定用戶)。

+0

因此,爲每個用戶實施註冊ID列表將是一個更好的主意。推送通知可以發送到所有設備,我只需要檢查用戶登錄哪個設備。謝謝 – Mulgard

+0

這完全與我所說的完全相反。多個用戶可以同時存在於單個設備上,但您確實希望使用設備的單個註冊ID將消息路由到設備上的所有用戶。在註冊當前用戶時,將註冊ID與用戶綁定也會導致不必要的網絡通信,並且避免這是首先使用GCM的原因之一。 –

+0

但後來我真的不明白,我可以發送推送通知給用戶...我必須在某處存儲註冊ID,我也必須綁定用戶,否則我永遠不能發送推送通知給正確用戶的正確設備。 – Mulgard