嗨,我想知道如果AWS lambda是足夠好的技術,可以將廣播推送通知發送到數十萬個設備。使用AWS Lambda實施廣播推送通知?
我已經實現了一個發送推送通知給APNS或FCM(新的GCM)的lambda函數,但它只是1:1。
但是現在我想同時發送相同的消息給多個設備 - 多達數十萬個推送通知。
我一直在使用Microsoft Azure通知集線器,但我想要直接滾動我自己的。任何關於如何去做這件事的建議?
嗨,我想知道如果AWS lambda是足夠好的技術,可以將廣播推送通知發送到數十萬個設備。使用AWS Lambda實施廣播推送通知?
我已經實現了一個發送推送通知給APNS或FCM(新的GCM)的lambda函數,但它只是1:1。
但是現在我想同時發送相同的消息給多個設備 - 多達數十萬個推送通知。
我一直在使用Microsoft Azure通知集線器,但我想要直接滾動我自己的。任何關於如何去做這件事的建議?
您可以使用SNS進行移動推送通知。您可以創建主題,然後創建端點(移動設備)並將所有這些端點訂閱到該主題。一旦您向該主題發送通知,所有移動設備都會收到通知。
謝謝,就像我剛纔提到的那樣,我已經在使用Microsoft Azure通知中心,而在天藍的情況下,他們甚至沒有話題限制(哪些是sns)。但無論如何,我的問題並不是尋找新的第三方推送服務,而是我自己建立這種服務的一種方式。更具體地說,我想知道我是否可以構建一個lambda函數併發送並行廣播(所以我可以輕鬆地將它移動到另一個主機,以防我不希望它再次出現) – Vlad
默認情況下有10.000 .000每個主題的訂閱限額非常高,並且可以通過支持憑單增加。我可以理解你不希望供應商鎖定,但考慮一下你可能花費在實施和維護這些東西上的每小時價格比你付給aws/azure /火力點。 –
我明白,這就是爲什麼我一直在使用Azure。但我正在努力做到這一點,因爲我的目標明顯需要這樣做。此外,SNS僅支持每個帳戶最多100,000個主題,並且在達到限制時您必須申請更多。這非常有限。我親自使用了所有的SNS/Azure/Firebase,並在其上運行了生產應用程序。如果我能得到關於如何自己構建這個問題的答案,我將不勝感激。 – Vlad
Brodcasting消息給成千上萬的設備可以在內部實現,但需要注意幾個邊緣案件包括:
有時FCM或APN的服務可能會返回一個臨時錯誤。您需要跟蹤哪些設備未收到該消息並稍後重試。
以後重試可能意味着重試後,1秒或1分鐘,2,4 ... 您的服務需要始終保持活動狀態。
某些標記將變爲無效(用戶卸載應用程序)。您的服務需要跟蹤這些數據並清理您的數據庫
即使令牌未失效,最好從數據庫中刪除未登錄系統的設備的令牌最近2個月或3個月。
由於上述限制,我不認爲Lambda是構建此類基礎架構的最佳平臺。
出於好奇:Firebase主題中缺少哪些內容以防止您使用它來廣播您的信息? https://firebase.google.com/docs/cloud-messaging/android/topic-messaging –
@DiegoGiorgini我仍然需要實現iOS的邏輯,這意味着能夠向firebase主題進行廣播並不會讓我的生活更輕鬆。 – Vlad
Firebase是跨平臺的。這是iOS的文檔:https://firebase.google.com/docs/cloud-messaging/ios/topic-messaging –