透過 Mozilla 的「Push」傳送 VAPID 驗證過的 WebPush 通知

簡介

不需與使用者互動,Web Push API 即可從應用程式伺服器 (App server) 送出即時事件 (包含資料) 至其用戶端的對應處 (即該 App)。我們另在 Push 說明文件中針對 App 的 API 提供一般參考資料,以及用戶端基本使用範例線上教學。此一文件針對 App 伺服端有詳盡說明,更包含將 VAPID 與 Push 訊息加密功能整合至你的伺服器等相關資訊,並避免常見問題。

注意:本文中所提的大多數情況,均假設讀者已嫻熟程式設計並知道加密的基礎。可惜的是,由於「Push」仍屬於新技術,目前尚無足夠的函式庫可輕鬆、順利的傳送訊息。只要有新的函式庫出現,我們將立刻添增相關資訊。目前將重點說明應如何進行加密,以因應當下的迫切需要,並協助其他人得以儘快著手建構函式庫。

另必須說明的是:「Push」並非要取代如 Google Cloud Messaging (GCM)、Apple Push Notification system (APNs)、Microsoft 的 Windows Notification System (WNS) 等較完整的訊息傳輸技術。這些技術各有各的優點與成本,所以開發者應自行選用最適合自己所需的技術。若單就將資料傳送到 App,則「Push」可算是低成本又簡單易用的方式。

「Push」摘要

「Push」系統即如:

push

 

  • 應用程式 (Application;App) ─ 使用者主要面對的程式部分,可透過瀏覽器互動以請求「推播訂閱 (Push Subscription)」,並接收訂閱更新 (Subscription Updates)。
  • App 伺服器 (Application Server) ─ 後端服務可產生訂閱更新,以跨 Push 伺服器。
  • Push 系統 ─ 此系統負責將事件從 App 伺服器傳送到 App。
  • Push 伺服器 (Push Server) ─ 此伺服器負責處理事件,再將之傳送到正確的訂閱器 (Subscriber)。各家瀏覽器均透過自己的推播伺服器來處理訂閱管理;像 Mozilla 即用了 autopush
  • 訂閱 (Subscription) ─ 此即使用者所請求的特定主題即時資訊,將建立一組末端以傳送訂閱更新。有時也稱為「頻道 (Channel)」。
  • 末端 (Endpoint) ─ 為一特定網址,用以傳送推播訊息到特定訂閱器。
  • 訂閱器 (Subscriber) ─ App 訂閱推播以獲得更新,或使用者點擊「訂閱 (Subscriber)」按鈕要求 App 訂閱推播。
  • 訂閱更新 (Subscription Update) ─ 此一事件傳送至 Push 之後,將從 Push 伺服器接收推播訊息。
  • Push 訊息 (Push Message) ─ 從 App 伺服器經由 Push 伺服器傳送到 App 的訊息,其內可含資料內容 (Payload,裝載通知所應顯示的訊息)。

 

從推播到伺服端的重要部分如下:

 

這裡先說結論:推播資料加密其實頗具挑戰性,但值得大家投入更多資源。越健全的加密也代表歹徒越無機可趁,避免未知第三方獲得你的個人資訊。我們希望未來會有更完善的函式庫,以及更廣為大家所採用的規格,讓這期間的許多痛苦與困難之處畫下句點。也期待所有程式語言的函式庫將日益完善。

如果你正好在接觸「Push」的相關工作,想更進一步了解以上所提的技術面,請參閱完整原文

 

 

原文連結:Sending VAPID identified WebPush Notifications via Mozilla’s Push Service

 

 

您可能也會喜歡

目前找不到相關文章

對此文章發表回應

你的電子郵件位址並不會被公開。 必要欄位標記為 *