五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

UnifiedPush:一種去中心化的開源推送通知協(xié)議

2023-02-15 17:07 作者:Level0村民  | 我要投稿

現(xiàn)代 Android 智能手機依賴于大量服務,從應用商店和日歷到消息傳遞和推送通知。他們中的大多數(shù)都有開放的替代方案,但直到現(xiàn)在,推送通知的唯一選擇是 Google 的專有服務,F(xiàn)irebase Cloud Messaging?(FCM)。?UnifiedPush 是一種新的替代方案,它允許您在不依賴于單個公司的情況下獲得推送通知

推送通知對于現(xiàn)代移動體驗至關重要,因為它們允許應用與用戶實時通信,即使未在主動使用時。依賴 Google 提供的推送通知導致了對隱私和獨立性的擔憂。專有的 FCM 庫不能包含在 F-Droid 應用中,并且依賴于 Google 服務。因此,通常會看到 FOSS 應用采用應用和服務器之間的持久直接連接作為替代方案。

應用-服務器直接連接的局限性

雖然從技術(shù)上講每個應用都可以連接到自己的服務器并直接接收通知,但有多種原因?qū)е逻@種方法可能并不實用或有效。

在應用和服務器之間建立和維護直接連接可能會占用大量資源,影響設備的電池、CPU 和網(wǎng)絡資源。

  • 為了最大限度地減少資源負載,操作系統(tǒng) (OS) 會嘗試掛起未被主動使用的應用。但是,如果每個應用都主動維護服務器連接,則操作系統(tǒng)無法暫停它們。

  • 多個應用以可變的時間間隔 ping 自己的服務器會阻止設備進入低功耗睡眠模式,這會更快地耗盡設備的電池。

  • 讓一個特殊的應用能夠建立優(yōu)先連接可以最大限度地減少這些問題,并允許操作系統(tǒng)有效地掛起其他應用并進入睡眠狀態(tài),從而節(jié)省資源并減少電池消耗。

  • 作為開發(fā)者,管理后臺服務和優(yōu)化連接可能既復雜又耗時。通過使用推送通知服務,您可以將此責任轉(zhuǎn)移到專門的應用,讓您專注于應用的其他方面。

作為用戶,我要如何開始使用 UnifiedPush?

支持 UnifiedPush 的應用可以通過專用的 UnifiedPush 應用接收通知,該應用維護單個服務器連接以接收所有通知。我們將此“UnifiedPush 應用”稱為?分發(fā)器;它將推送通知分發(fā)到設備上的其他應用。您可以選擇要使用的分發(fā)器,自行托管服務器部分,甚至創(chuàng)建自己的分發(fā)器。有關分發(fā)器的更多信息,請查看完整列表[https://unifiedpush.org/users/distributors/]。

要在支持它的應用上使用 UnifiedPush,您必須安裝和配置您的分發(fā)器。您可以使用?UP-Example[https://f-droid.org/en/packages/org.unifiedpush.example/] 作為簡單的測試應用。

?

一張 SVG 動圖,展示了任意分發(fā)器和應用是如何通過 UnifiedPush 協(xié)議,可互相替換并仍能協(xié)同工作


所有分發(fā)器與應用都兼容

TL;DR 關于 Android

設置 UnifiedPush 并使用支持它的應用[https://unifiedpush.org/users/apps/]的最簡單方法是:

  1. 安裝?ntfy[https://unifiedpush.org/users/apps/] Android 應用;這是你的分發(fā)器

  2. 打開它,并為其禁用電池優(yōu)化

  3. 在應用中開啟UnifiedPush;它會自動檢測 ntfy。 (此步驟取決于應用程序的用戶體驗)?

分發(fā)器選擇屏幕截圖,顯示 Gotify-UP、Google Services、ntfy、UP-FCM 分發(fā)器、NextPush、NoProvider2Push


當有多個分發(fā)器可用時(是的,我知道我有太多分發(fā)器了 :P),您可以在它們之間進行選擇。只有一個時,它將自動被選擇

作為開發(fā)者,如何向我的應用添加 UnifiedPush 支持?

要為您的應用添加 UnifiedPush 支持,您首先需要確保您的服務器與 UnifiedPush 兼容:它必須能夠?qū)⑼ㄖl(fā)送到不同的端點,這些端點是指向用戶使用的各種服務器的 URL。如果您的應用使用網(wǎng)關來處理 Google 推送通知,則修改網(wǎng)關可以使其與 UnifiedPush 兼容。

在移動應用端,一旦用戶啟用 UnifiedPush,您必須檢查用戶設備上是否安裝了分發(fā)器。然后,該應用應提示用戶選擇他們想要使用的分發(fā)器。之后,您可以注冊它。

選定的分發(fā)器將發(fā)送一個新的端點,應用應將其轉(zhuǎn)發(fā)到其服務器。然后,應用準備通過注冊 Android BroadcastReceiver 來接收發(fā)送到該端點的數(shù)據(jù)。此 BroadcastReceiver 處理來自您的服務器的消息(通常是 ping 以獲取通知)。

每次應用啟動時向選定的分發(fā)器注冊應用很重要,以防它們不同步。如果應用再次收到相同的端點,則不需要重新注冊端點。

其中大部分由 UnifiedPush 庫處理。您可以在我們的文檔網(wǎng)站[https://unifiedpush.org/developers/android/]上找到更詳細的說明。

如果您在應用中實現(xiàn) UnifiedPush 時需要幫助,我們很樂意回答您在我們的?Matrix 聊天室[https://matrix.to/#/#unifiedpush:matrix.org]中提出的任何問題。

注意:這篇博文主要針對 Android;在我們的網(wǎng)站[https://unifiedpush.org/developers/go_c/]上可以找到在 Linux 應用上添加 UnifiedPush 支持的說明。

UnifiedPush 底層是如何工作的?

UnifiedPush 的核心是一個規(guī)范。該規(guī)范分為兩半:

  • 在設備(客戶)端,它定義了一個應用編程接口 (API) 以允許任何最終用戶應用(例如您的消息應用)與任何分發(fā)器應用( ntfy、NextPush 等)

  • 在服務器端,API 描述了應用服務器(Matrix homeserver、Mastodon 實例等)如何向推送服務器(ntfy 服務器、Nextcloud 服務器等)發(fā)送消息.

我們的客戶端庫和參考代理分別協(xié)助實施規(guī)范的兩端。

為獲得 UnifiedPush 端點(向其發(fā)送通知的功能 URL),最終用戶應用向 UnifiedPush 分發(fā)器注冊,該分發(fā)器與推送服務器保持持續(xù)連接。注冊后,分發(fā)者向應用提供指向推送服務器的唯一 URL。該端點 URL 然后由應用客戶端傳輸?shù)綉梅掌鳌?/p>

當應用服務器需要向最終用戶應用發(fā)送推送消息時,它會使用簡單的 HTTP POST 請求將消息發(fā)送到推送服務器。推送服務器然后將推送消息轉(zhuǎn)發(fā)給分發(fā)器,分發(fā)器將其傳遞給最終用戶應用。

UnifiedPush 的一個關鍵特性是不指定推送服務器和分發(fā)器之間的通信。這意味著可以采用多種技術(shù),例如 WebSocket、服務器發(fā)送事件、XMPP、原始 TCP 甚至 SMS,只要最適合用戶即可。

一張 SVG 動圖,展示了一條消息經(jīng)過 UnifiedPush
的所有步驟,即從應用服務器發(fā)送到推送服務器,再到(手機上的)分發(fā)器應用和最終用戶應用,然后喚醒并發(fā)出一條 Android 通知

分發(fā)器使用平臺特定的 IPC 機制(例如 Android 上的 Broadcast Intents 或 Linux 上的 D-Bus)來喚醒應用并允許它處理推送消息。然后應用可以處理數(shù)據(jù)并根據(jù)內(nèi)容決定是否顯示通知。重要的是要注意 UnifiedPush 不處理用戶可見通知的顯示;它只向應用程序提供數(shù)據(jù)。因此,應用可以支持各種平臺的通知功能,而無需 UnifiedPush 或服務器的參與。

在應用服務器本身不支持 UnifiedPush 的情況下,推送網(wǎng)關可以將特定于應用的通知轉(zhuǎn)換為 UnifiedPush 服務器協(xié)議。一些流行的推送網(wǎng)關,例如用于 Matrix 的推送網(wǎng)關,被直接集成到推送服務器中以方便自托管。此外,Rewrite Proxies 用于推送服務器不支持 UnifiedPush 的極少數(shù)情況,例如 FCM 分發(fā)器發(fā)送 UnifiedPush-over-FCM。

?

顯示上述所有組件相互鏈接的靜態(tài)圖像

?Push Provider = Push Server

UnifiedPush 與 WebPush 的兼容性

現(xiàn)在,您可能正在關注房間里的大象:WebPush (RFC8030)。 WebPush 是瀏覽器用于推送通知的開放標準。好消息是 UnifiedPush 與 WebPush 兼容……很大程度上。

基本上,支持 WebPush 但不需要其高級功能且不會將推送限制為僅流行的 WebPush 服務器(來自瀏覽器供應商的服務器)的應用程序服務器應該可以毫無問題地使用 UnifiedPush 提供程序。我們正在研究解決方案,以確保更好、更穩(wěn)定的 WebPush 支持。

未來計劃

  • 采用 UnifiedPush 的應用越多,它就越有用。目前,許多 Matrix 和 Mastodon 應用都支持 UnifiedPush。我們還致力于讓 Telegram 和 Signal 等流行應用的開源版本支持 UnifiedPush。

  • 改進 WebPush 支持也將有助于增加可以使用 UnifiedPush 的應用數(shù)量。我們正在努力使 WebPush 與 UnifiedPush 更好地兼容。

  • Lineage OS 或 /e/OS (murena) 等自定義 Android ROM 中的內(nèi)置分發(fā)器呢?他們的支持可以極大地加速 De-Googled 社區(qū)中的 UnifiedPush 支持。

  • Linux 平臺也可以從 UnifiedPush 中受益。改進 Linux 規(guī)范并提高其采用率將有助于提高電池壽命和響應性。

  • 由于 UnifiedPush 非常靈活,一些平臺可以通過為分發(fā)器使用低功耗硬件來實現(xiàn)更大的效率提升:在手機休眠時將其保持在調(diào)制解調(diào)器或低功耗核心上。

歸根結(jié)底,如果您在 Android 上使用 Matrix 或 Mastodon 應用或其他支持的應用[https://unifiedpush.org/users/apps/]之一,您很有可能可以使用 UnifiedPush 無需依賴 Google 即可獲取推送通知。您現(xiàn)在可以通過安裝?ntfy[https://ntfy.sh/#subscribe-phone] 或選擇其他分發(fā)器[https://unifiedpush.org/users/distributors/]開始使用 UnifiedPush。

如果您是應用開發(fā)者,對您的應用在從 F-Droid 安裝時接收推送通知感興趣,并允許您的用戶擁有獨立、自托管的基礎設施,請查看 UnifiedPush,如果您有任何問題隨時與我們[https://matrix.to/#/#unifiedpush:matrix.org]交談!



Posted on 2022-12-18 by UnifiedPush Team[https://unifiedpush.org/]


UnifiedPush:一種去中心化的開源推送通知協(xié)議的評論 (共 條)

分享到微博請遵守國家法律
彭州市| 渭源县| 都安| 隆子县| 邮箱| 阳新县| 怀安县| 庆安县| 昌图县| 南通市| 察隅县| 新竹市| 万荣县| 定兴县| 论坛| 靖州| 无极县| 柯坪县| 桃园市| 鹤庆县| 册亨县| 普兰县| 尼玛县| 浦北县| 青岛市| 电白县| 竹山县| 宁蒗| 堆龙德庆县| 土默特右旗| 应城市| 广德县| 桐柏县| 临漳县| 翁源县| 七台河市| 临湘市| 石家庄市| 重庆市| 哈尔滨市| 吉林市|