我正在建立聊天,並且希望將消息以FCM發送到組中的1000個客戶端。該消息將從客戶端發送到1000個客戶端組(消息不通過服務器)。我可以使用主題方法,但是如果我想通過組管理員移除客戶端,則不可能。任何人都可以提出解決方案將按摩發送到Firebase雲消息傳遞中的組設備
請幫助我。
我正在建立聊天,並且希望將消息以FCM發送到組中的1000個客戶端。該消息將從客戶端發送到1000個客戶端組(消息不通過服務器)。我可以使用主題方法,但是如果我想通過組管理員移除客戶端,則不可能。任何人都可以提出解決方案將按摩發送到Firebase雲消息傳遞中的組設備
請幫助我。
主題確實是公開的:您(作爲應用程序的開發人員/管理員)無法阻止您的應用程序的用戶訂閱主題。
如果你想控制那些接收你的消息的設備,你必須要send the message to those specific devices。通過跟蹤instance ID tokens爲數據庫中的這些設備執行此操作,然後在發送下游消息時將目標鎖定在令牌列表中。
如果你只是想刪除(退訂)某些特定的成員,您可以使用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"}, {}, ] }
你好,你嘗試你的建議,它的工作? –
我不確定你在問什麼。 API起作用。我以前測試過它。 –
正如我所說的,我想從一個設備發送消息到其他設備,而不通過服務器。我仍然可以使用你的建議AL。? –
如果我通過使用用於環路發送消息1000到1000級的令牌,我花資源的很多? for循環在一個線程內 –
你不會發送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 –