什么是 Azure 通知中心?

來源: Microsoft Azure
作者:Microsoft Azure
時間:2021-01-06
17217
Azure通知中心提供易于使用且橫向擴展的推送引擎,允許你從任何后端(云或本地)向任何平臺(iOS、Android、Windows等)發(fā)送通知。通知中心非常適合用于企業(yè)和消費者方案。

Azure通知中心提供易于使用且橫向擴展的推送引擎,允許你從任何后端(云或本地)向任何平臺(iOS、Android、Windows等)發(fā)送通知。通知中心非常適合用于企業(yè)和消費者方案。下面是一些示例方案:

以較低的延遲向數(shù)百萬用戶發(fā)送突發(fā)新聞通知。

向感興趣的用戶群發(fā)送基于位置的優(yōu)惠券。

向媒體/體育/財經(jīng)/游戲應用程序的用戶或組發(fā)送活動相關的通知。

將促銷內(nèi)容推送到應用程序,以吸引客戶并向其推銷。

向用戶通知企業(yè)事件,例如新的消息和工作項。

發(fā)送多重身份驗證的代碼。

什么是推送通知?

推送通知是一種應用到用戶的通信形式,它通常以移動設備上的彈窗或?qū)υ捒虻姆绞綄⒛撤N需要的信息通知給移動應用的用戶。用戶通常選擇是要查看還是忽略該消息,如果選擇前者,將打開傳達了該通知的移動應用程序。一些通知是靜默通知-通過后臺提供,以便應用進行處理和確定相應操作。

推送通知對于提高消費型應用的應用參與度與使用量以及在企業(yè)應用中傳達最新業(yè)務信息至關重要。它是最佳的應用到用戶通信形式,因為它對于移動設備而言能效較高,對于發(fā)送方而言具有彈性,即使相應的應用程序處于非活動狀態(tài)時,也能使用推送通知。

備注

Azure通知中心并不正式支持IP語音(VoIP)推送通知;但是,此文介紹如何通過Azure通知中心使用APNS VOIP通知。

有關一些流行平臺中的推送通知的詳細信息,請參閱以下主題:

Android

iOS

Windows

推送通知的工作原理是什么?

推送通知通過稱為平臺通知系統(tǒng)(PNS)的特定于平臺的基礎結構進行傳送。它們提供基本的推送功能,使用提供的句柄向設備傳送消息,沒有通用接口。若要跨應用的Android、iOS和Windows版本將通知發(fā)送給所有客戶,開發(fā)人員必須單獨使用Apple Push Notification服務(APNS)、Firebase Cloud Messaging(FCM)和Windows通知服務(WNS)。

從較高層面講,推送的工作原理如下:

應用程序希望接收通知,因此會聯(lián)系運行時所在的目標平臺的PNS并請求唯一的臨時推送句柄。句柄類型取決于系統(tǒng)(例如,WNS使用URI,APNS使用令牌)。

客戶端應用將此句柄存儲在應用后端或提供程序中。

為了發(fā)送推送通知,應用后端使用句柄與PNS聯(lián)系以定位到特定的客戶端應用。

PNS將通知轉(zhuǎn)發(fā)到句柄所指定的設備。

registration-diagram.png

推送通知的難點

PNSes非常強大。但應用開發(fā)人員仍然需要完成大量工作才能實現(xiàn)常見的推送通知方案,例如,將推送通知廣播給細分用戶。

發(fā)送推送通知需要與應用程序的主要業(yè)務邏輯無關的復雜基礎結構。下面是基礎結構方面的一些難題:

平臺依賴性

由于PNS并不統(tǒng)一,需要在后端中使用復雜且難以維護的平臺相關邏輯,才能將通知發(fā)送到各個平臺上的設備。

縮放

根據(jù)PNS指導原則,每次啟動應用時都必須刷新設備令牌。僅僅是為了保持令牌的最新狀態(tài),后端就必須處理大量的流量和數(shù)據(jù)庫訪問。當設備數(shù)目增長到幾億甚至幾十億時,創(chuàng)建和維護此基礎結構所需的成本是巨大的。

大多數(shù)PNS不支持廣播到多臺設備。僅僅是廣播到100萬臺設備就需要對PNS發(fā)出100萬次調(diào)用。以最低的延遲縮放這種流量大小并非易事。

路由

盡管PNS提供了向設備發(fā)送消息的方式,但大多數(shù)應用通知面向用戶或興趣組。后端必須維護一個注冊表,用于將設備與興趣組、用戶、屬性等關聯(lián)起來。此項開銷增大了應用的面市時間和維護成本。

為何使用Azure通知中心?

通知中心消除了與你自行從應用后端發(fā)送推送通知相關的所有復雜性。它的多平臺擴展式推送通知基礎結構減少了推送相關的代碼并簡化了后端。使用通知中心時,設備只負責將其PNS句柄注冊到中心,而后端負責向用戶或興趣組發(fā)送消息,如下圖中所示:

notification-hub-diagram.png

通知中心是隨時可用的推送引擎,具有以下優(yōu)點:

跨平臺

支持所有主要的推送平臺。

有一個通用接口,可以使用平臺特定的或平臺相關的格式向所有平臺推送通知,無需執(zhí)行平臺特定的工作。

在一個位置管理設備句柄。

跨后端

云或本地。

.NET、Node.js、Java、Python等。

豐富的傳送模式集

廣播到一個或多個平臺:只需調(diào)用API一次,便可立即廣播到數(shù)百萬臺跨平臺設備。

推送到設備:可將通知定位到單個設備。

推送到用戶:可以借助標記和模板將通知傳入用戶的所有跨平臺設備。

使用動態(tài)標記推送到目標段:可以借助標記功能根據(jù)需要將設備分段并向其推送通知,不管是要發(fā)送到一個段還是段的表達式(例如,active AND lives in Seattle NOT new user)??梢圆皇馨l(fā)布-訂閱的限制,隨時隨地更新設備標記。

本地化推送:可以借助模板功能實現(xiàn)本地化,而不會影響到后端代碼。

靜默推送:可以通過向設備發(fā)送靜默通知并觸發(fā)設備完成特定的拉取或操作,來實現(xiàn)推送-拉取模式。

計劃推送:可以按計劃隨時發(fā)送通知。

直接推送:可以跳過將設備注冊到通知中心服務的步驟,直接批量推送到設備句柄列表。

個性化推送:可以借助設備推送變量,使用自定義的鍵值對發(fā)送設備特定的個性化推送通知。

豐富的遙測

可通過Azure門戶和編程方式使用常規(guī)的推送、設備、錯誤和操作遙測。

單消息遙測會跟蹤從發(fā)出初始請求調(diào)用到通知中心服務成功發(fā)送推送的每個推送過程。

平臺通知系統(tǒng)反饋會傳達來自PNS的所有反饋以幫助調(diào)試。

伸縮性

無需重建體系結構或者將設備分片,即可快速地向數(shù)百萬臺設備發(fā)送消息。

安全性

共享訪問機密(SAS)或聯(lián)合身份驗證。

立即登錄,閱讀全文
版權說明:
本文內(nèi)容來自于Microsoft Azure,本站不擁有所有權,不承擔相關法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家