2016-04-03 101 views
4

何時我應該更喜歡通過註冊ID列表(a message with registration_ids parameter)向device group發送消息?Google雲消息傳遞:registration_ids與設備組

似乎管理設備組只會增加複雜性。對於設備組,應用程序服務器應包含何時創建組或僅添加註冊標識的邏輯。服務器仍然需要將註冊ID保存在某個數據庫中,並且現在需要保存通知密鑰。 responses似乎不那麼詳細:沒有指定失敗的原因,因此很難知道應該怎麼做才能防止失敗(應用程序是否被卸載?註冊令牌已過期?等等)。
我錯過了什麼?有什麼好處?

在此先感謝!

回答

0

Registration_idsDevice Group可能會很棘手,可以用於開發人員的選擇。使用的註冊ID發送消息根據本guide

在此上下文中,「簡單」是指從該應用服務器發送到 客戶端應用程序的設備上的消息,而不是通過主題 或設備路由消息組。

對於Device Group

隨着設備組消息,應用服務器可以發送單個消息對屬於一組設備上運行的應用程序的多個實例。通常,「組」是指屬於單個用戶的一組不同設備。但是,一個組也可以代表一組設備,其中應用實例以高度相關的方式運行,例如安裝了溫度控制應用的手機,智能恆溫器和自動開窗器。組中的所有設備共享一個通用密鑰,這是GCM用來將消息扇出到組中所有設備的標記。

基於這個發送單個消息與register_ID列表是一種更直接的方法,簡單的編碼和更少的密鑰管理複雜性。雖然設備組使用設備組處理註冊設備的複雜列表(具有在服務器中註冊的多個設備的單個用戶)將更合理地使用。

注意:檢查服務器是否可以處理這些消息類型的查詢。

+2

爲什麼使用具有多個設備的單個用戶的設備組是理由的選擇?註冊ID列表有什麼好處?無論如何,註冊ID都會在應用服務器上保存和管理 –

0

設備組主要用於擁有多個運行相同應用的設備的用戶,因此全部屬於同一個設備組。這些好處包括:

通知同步:您可以實現一些很酷的功能,可以將通知同步在一起,例如一個設備上的通知被取消,同一通知將在其他設備上消失。或者,當一個設備按下通知時,設備的細節,應用程序的狀態,配置等可以發送到所有其他設備,也可以相應地調整其他設備。

更少微操作:我相信,當用戶卸載或獲取其設備的新令牌ID時,設備組將自動調整爲不再發送給該設備。因此,如果用戶卸載應用程序,則不必更新該ID列表以刪除其令牌。儘管如此,您仍然必須從主服務器數據庫中刪除。

更容易區分您可以讓每一個用戶,即使他們只有一個設備,都屬於他們自己的設備組。這使得選擇不同的用戶發送通知時更容易,您不必挖掘用戶並挖掘所有關聯的ID,只需挖掘他們的通知密鑰,FCM就可以處理其餘的問題。

當然,這些都是非常具體的用例,但我相信您可以通過通知同步完成更多操作,具體取決於您要使用的應用程序類型。