2017-04-02 111 views
-1

我正在建立聊天,並且希望將消息以FCM發送到組中的1000個客戶端。該消息將從客戶端發送到1000個客戶端組(消息不通過服務器)。我可以使用主題方法,但是如果我想通過組管理員移除客戶端,則不可能。任何人都可以提出解決方案將按摩發送到Firebase雲消息傳遞中的組設備

請幫助我。

回答

1

主題確實是公開的:您(作爲應用程序的開發人員/管理員)無法阻止您的應用程序的用戶訂閱主題。

如果你想控制那些接收你的消息的設備,你必須要send the message to those specific devices。通過跟蹤instance ID tokens爲數據庫中的這些設備執行此操作,然後在發送下游消息時將目標鎖定在令牌列表中。

有一個example of how to manage device tokens and send messages in the Cloud Messaging for Firebase documentation

+0

如果我通過使用用於環路發送消息1000到1000級的令牌,我花資源的很多? for循環在一個線程內 –

+1

你不會發送1000條消息,你會發送一條消息給許多ID。請參閱http://stackoverflow.com/questions/40426817/how-to-send-push-notifications-to-multiple-devices-using-firebase-cloud-messagin和http://stackoverflow.com/questions/39375200/fcm -message-to-multiple-registration-ids-limit –

0

如果你只是想刪除(退訂)某些特定的成員,您可以使用InstanceID API,具體batchRemove

管理關係映射爲多個應用程序實例

使用實例ID服務的批處理方式,您可以執行應用實例的批次管理。例如,您可以批量添加或刪除應用程序實例到FCM或GCM主題。要管理應用實例,調用實例ID服務在此終結,在JSON體提供應用程序實例標記:

https://iid.googleapis.com/iid/v1:batchAdd 

https://iid.googleapis.com/iid/v1:batchRemove 

參數

  • 授權:鍵= YOUR_API_KEY。在標題中設置此參數。
  • to:主題名稱。
  • registration_tokens:要添加或刪除的應用程序實例的IID令牌數組。

結果

在成功調用返回的HTTP狀態200.空結果表明該令牌成功訂閱。對於失敗的訂閱,結果包含以下錯誤代碼之一:

  • NOT_FOUND - 註冊令牌已被刪除或應用程序已被卸載。
  • INVALID_ARGUMENT - 提供的註冊令牌對於發件人ID無效。
  • INTERNAL - 後端服務器由於未知原因失敗。重試請求。
  • TOO_MANY_TOPICS - 每個應用程序實例的主題數量過多。

例POST請求

https://iid.googleapis.com/iid/v1:batchAdd 
Content-Type:application/json 
Authorization:key=API_KEY 
{ 
    "to": "/topics/movies", 
    "registration_tokens": ["nKctODamlM4:CKrh_PC8kIb7O...", "1uoasi24:9jsjwuw...", "798aywu:cba420..."], 
} 

實施例導致

HTTP 200 OK 
{ 
    "results":[ 
    {}, 
    {"error":"NOT_FOUND"}, 
    {}, 
    ] 
} 
+0

你好,你嘗試你的建議,它的工作? –

+0

我不確定你在問什麼。 API起作用。我以前測試過它。 –

+0

正如我所說的,我想從一個設備發送消息到其他設備,而不通過服務器。我仍然可以使用你的建議AL。? –

相關問題