自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊關(guān)于APP推送那些事,分析各個(gè)端都是怎么協(xié)作完成推送任務(wù)的

原創(chuàng)
移動(dòng)開(kāi)發(fā)
推送功能已經(jīng)成為APP里面必備的一個(gè)功能,利用推送,我們除了能夠?qū)衢T(mén)信息推送給用戶(hù)外,還能夠?qū)⒁恍┖陀脩?hù)本人相關(guān)的信息推送給用戶(hù),那么兩種類(lèi)型的推送都是怎么樣的呢?要實(shí)現(xiàn)兩種推送,我們應(yīng)該怎么做?

【51CTO.com原創(chuàng)稿件】推送功能已經(jīng)成為APP里面必備的一個(gè)功能,利用推送,我們除了能夠?qū)衢T(mén)信息推送給用戶(hù)外,還能夠?qū)⒁恍┖陀脩?hù)本人相關(guān)的信息推送給用戶(hù),那么兩種類(lèi)型的推送都是怎么樣的呢?要實(shí)現(xiàn)兩種推送,我們應(yīng)該怎么做?

4

看到上圖是不是很有親切感呢?打開(kāi)很多APP的時(shí)候,我們都會(huì)發(fā)現(xiàn)這樣一個(gè)有趣的事情,就是這些APP會(huì)推送各種各樣的信息給我們,比如某條新聞熱點(diǎn),某個(gè)用戶(hù)評(píng)論、收藏和分享了我的文章,甚至有些商城類(lèi)APP還會(huì)推送發(fā)貨、退貨、優(yōu)惠通知等等,下面我們就來(lái)聊聊關(guān)于推送的相關(guān)知識(shí)。

一個(gè)簡(jiǎn)單的人為消息推送輕架構(gòu)

2

上圖是一個(gè)用于生產(chǎn)環(huán)境的推送輕架構(gòu)圖,從圖中我們能夠看到,首先由我們的內(nèi)容編輯工作者從管理后臺(tái)選擇要推送的新聞、視頻等等內(nèi)容,然后后端程序通過(guò)SDK或者HTTP API將這些推送的內(nèi)容傳遞給推送服務(wù)端,推送服務(wù)端接收到這些即將推送的消息之后,經(jīng)過(guò)一系列的處理,然后依次發(fā)送給APP里面的客戶(hù)端,APP里面的客戶(hù)端收到推送消息之后,將推送消息顯示在我們的手機(jī)狀態(tài)欄,從而得到我們最后看到的推送。

雖然推送程序是一個(gè)C/S程序,但是很大部分個(gè)人或者企業(yè)都是不會(huì)自己去開(kāi)發(fā)推送的,而是借助市場(chǎng)上已經(jīng)提供的現(xiàn)成推送框架來(lái)實(shí)現(xiàn)推送的功能,目前市場(chǎng)上的推送框架主要有:小米推送、百度推送、友盟推送等等。

消息生產(chǎn)者 & 消息消費(fèi)者

上面聊了一種基于人為的推送,所有要推送的消息都是由我們?nèi)藶檫x擇的,并且普遍都是將其推送到所有的APP用戶(hù),但是對(duì)于一些特殊的推送,就只能夠推送給某個(gè)用戶(hù)了,比如發(fā)貨通知、VIP到期通知、會(huì)員續(xù)費(fèi)通知等等的推送,因?yàn)橹会槍?duì)某個(gè)用戶(hù),所以這時(shí)候我們只能夠用程序的方式來(lái)代替人類(lèi)完成推送,不過(guò)實(shí)現(xiàn)都是一樣的,只不過(guò)要推送的內(nèi)容由程序生成而已,那么怎么才能夠做到推送給某個(gè)用戶(hù)呢?

1

其實(shí)在我們的推送框架里面,對(duì)于每個(gè)APP都有一個(gè)推送的唯一標(biāo)識(shí),比如小米推送就是用regid來(lái)表示,有了這個(gè)唯一標(biāo)識(shí),我們可以在用戶(hù)登錄APP的時(shí)候,將這個(gè)唯一標(biāo)識(shí)和我們的用戶(hù)UID綁定起來(lái),這樣我們就能夠?qū)⒃揢ID產(chǎn)生的各種消息推送給他了。

一個(gè)輕型小巧的自動(dòng)消息推送架構(gòu)

上面簡(jiǎn)單聊了怎么將用戶(hù)和推送標(biāo)識(shí)符關(guān)聯(lián)起來(lái),下面我們來(lái)聊聊怎么實(shí)現(xiàn)一個(gè)非人為消息推送架構(gòu),將和用戶(hù)相關(guān)的信息推送給他。

3

在上圖中,我們采用了redis的訂閱發(fā)布來(lái)實(shí)現(xiàn)消息的生產(chǎn)與消費(fèi),所謂redis訂閱就是訂閱某個(gè)通道的消息,然后當(dāng)這個(gè)通道有消息之后,Redis服務(wù)端會(huì)將其發(fā)送過(guò)來(lái),所謂redis發(fā)布消息就是將應(yīng)用產(chǎn)生的各種消息保存到Redis服務(wù)端的某個(gè)通道里面,我們這里只是選擇稍微簡(jiǎn)單的一種實(shí)現(xiàn)方式,當(dāng)然你還可以使用前面介紹的MQ來(lái)實(shí)現(xiàn)。

推送存在的弊端

由于現(xiàn)在很多APP都有推送功能,導(dǎo)致我們的手機(jī)每天都會(huì)收到很多推送,所以很多用戶(hù)會(huì)選擇將一些不重要的APP推送功能權(quán)限關(guān)閉了,這樣我們的推送就無(wú)法到達(dá)用戶(hù)的APP了,推送的意義也就不存在了。

【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】

責(zé)任編輯:何星 來(lái)源: 51CTO
相關(guān)推薦

2022-12-25 10:47:52

2022-09-09 08:08:28

開(kāi)源項(xiàng)目服務(wù)

2013-07-02 00:11:46

極光推送App推送市場(chǎng)移動(dòng)開(kāi)發(fā)

2018-01-03 11:35:34

推送AndroidiOS

2012-05-01 08:06:49

手機(jī)

2023-07-31 08:21:22

語(yǔ)法校對(duì)器Pick

2020-11-30 13:10:39

MySQL安全服務(wù)器

2021-08-06 11:50:49

Linux 字節(jié)對(duì)齊Linux 系統(tǒng)

2017-03-31 10:27:08

推送服務(wù)移動(dòng)

2024-08-18 14:09:24

2012-07-13 00:03:08

WEB前端開(kāi)發(fā)WEB開(kāi)發(fā)

2019-12-10 08:00:46

Kata容器Linux

2021-03-18 16:05:20

SSD存儲(chǔ)故障

2009-02-19 10:21:00

路由多WAN口

2015-09-14 09:28:47

2015-08-13 10:54:46

2023-12-06 19:04:31

多平臺(tái)消息推送

2012-01-02 19:30:22

iPad

2011-08-22 16:42:43

SqliteiPad

2022-06-02 08:42:15

Redis數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)