欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

flutter緩存框架,flutter 緩存

做混合的話Uniapp和Flutter我應(yīng)該學(xué)哪個(gè)啊?

Uniapp目前比較成熟,而且用的是Vue語法,學(xué)習(xí)成本比較低,而且行業(yè)里面用的也比較廣泛,而Flutter的話,學(xué)習(xí)成本略高,因?yàn)橐獙W(xué)習(xí)新的語言,還有就是目前生態(tài)不是特別完備,等他再發(fā)展發(fā)展吧。黑馬程序員官網(wǎng)有成套免費(fèi)視頻哦,有什么不懂的可以直接過去學(xué)習(xí)。您的采納是對(duì)我成長(zhǎng)的鞭策

成都創(chuàng)新互聯(lián)主營(yíng)永泰網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶APP開發(fā)公司,永泰h5微信小程序搭建,永泰網(wǎng)站營(yíng)銷推廣歡迎永泰等地區(qū)企業(yè)咨詢

Flutter Dio源碼分析(四)--封裝

Flutter Dio源碼分析(一)--Dio介紹

Flutter Dio源碼分析(二)--HttpClient、Http、Dio對(duì)比

Flutter Dio源碼分析(三)--深度剖析

Flutter Dio源碼分析(四)--封裝

Flutter Dio源碼分析(一)--Dio介紹視頻教程

Flutter Dio源碼分析(二)--HttpClient、Http、Dio對(duì)比視頻教程

Flutter Dio源碼分析(三)--深度剖析視頻教程

Flutter Dio源碼分析(四)--封裝視頻教程

github倉庫地址

本文會(huì)手把手教你該怎么去封裝一個(gè)類庫,平時(shí)在我們的工作中都是拿著別人的造好的輪子在使用,這篇文章將帶你怎么去自己造輪子,以后再碰到別的類庫需要對(duì)其進(jìn)行封裝的時(shí)候提供一個(gè)的思路和方法。

在前面的文章中,我們對(duì) Dio 的基本使用、請(qǐng)求庫對(duì)比、源碼分析,我們知道 Dio 的使用非常的簡(jiǎn)單,那為什么還需要進(jìn)行封裝呢?有兩點(diǎn)如下:

當(dāng)組件庫方法發(fā)生重要改變需要遷移的時(shí)候如果有多處地方用到,那么需要對(duì)使用到的每個(gè)文件都進(jìn)行修改,非常的繁瑣而且很容易出問題。

當(dāng)不需要 Dio 庫的時(shí)候,我們可以隨時(shí)方便切換到別的網(wǎng)絡(luò)請(qǐng)求庫,當(dāng)然 Dio 目前內(nèi)置支持使用第三方庫的適配器。

因?yàn)橐粋€(gè)應(yīng)用程序基本都是統(tǒng)一的配置方式,所以我們可以針對(duì) 攔截器 、 轉(zhuǎn)換器 、 緩存 、 統(tǒng)一處理錯(cuò)誤 、 代理配置 、 證書校驗(yàn) 等多個(gè)配置進(jìn)行統(tǒng)一管理。

因?yàn)槲覀兊膽?yīng)用程序在每個(gè)頁面中都會(huì)用到網(wǎng)絡(luò)請(qǐng)求,那么如果我們每次請(qǐng)求的時(shí)候都去實(shí)例化一個(gè) Dio ,無非是增加了系統(tǒng)不必要的開銷,而使用單例模式對(duì)象一旦創(chuàng)建每次訪問都是同一個(gè)對(duì)象,不需要再次實(shí)例化該類的對(duì)象。

這是通過靜態(tài)變量的私有構(gòu)造器來創(chuàng)建的單例模式

我們對(duì) 超時(shí)時(shí)間 、 響應(yīng)時(shí)間 、 BaseUrl 進(jìn)行統(tǒng)一設(shè)置

因?yàn)椴还苁?get() 還是 post() 請(qǐng)求, Dio 內(nèi)部最終都會(huì)調(diào)用 request 方法,只是傳入的 method 不一樣,所以我們這里定義一個(gè)枚舉類型在一個(gè)方法中進(jìn)行處理

我們已經(jīng)把 Restful API 風(fēng)格簡(jiǎn)化成了一個(gè)方法,通過 DioMethod 來標(biāo)明不同的請(qǐng)求方式。在我們平時(shí)開發(fā)的過程中,需要在請(qǐng)求前、響應(yīng)前、錯(cuò)誤時(shí)對(duì)某一些接口做特殊的處理,那我們就需要用到攔截器。 Dio 為我們提供了自定義攔截器功能,很容易輕松的實(shí)現(xiàn)對(duì)請(qǐng)求、響應(yīng)、錯(cuò)誤時(shí)進(jìn)行攔截

我們發(fā)現(xiàn)雖然 Dio 框架已經(jīng)封裝了一個(gè) DioError 類庫,但如果需要對(duì)返回的錯(cuò)誤進(jìn)行統(tǒng)一彈窗處理或者路由跳轉(zhuǎn)等就只能自定義了

在我們發(fā)送請(qǐng)求的時(shí)候會(huì)碰到幾種情況,比如需要對(duì)非open開頭的接口自動(dòng)加上一些特定的參數(shù),獲取需要在請(qǐng)求頭增加統(tǒng)一的 token

在我們請(qǐng)求接口前可以對(duì)響應(yīng)數(shù)據(jù)進(jìn)行一些基礎(chǔ)的處理,比如對(duì)響應(yīng)的結(jié)果進(jìn)行自定義封裝,還可以針對(duì)單獨(dú)的 url 做特殊處理等。

我們看了轉(zhuǎn)換器的介紹,發(fā)現(xiàn)和攔截器的功能差不多,那為什么還要存在轉(zhuǎn)換器,有兩點(diǎn):

執(zhí)行流程: 請(qǐng)求攔截器 請(qǐng)求轉(zhuǎn)換器 發(fā)起請(qǐng)求 響應(yīng)轉(zhuǎn)換器 響應(yīng)攔截器 最終結(jié)果 。

只會(huì)被用于 'PUT'、 'POST'、 'PATCH'方法,因?yàn)橹挥羞@些方法才可以攜帶請(qǐng)求體(request body)

會(huì)被用于所有請(qǐng)求方法的返回?cái)?shù)據(jù)。

在開發(fā)過程中,客戶端和服務(wù)器打交道的時(shí)候,往往會(huì)用一個(gè) token 來做校驗(yàn),因?yàn)槊總€(gè)公司處理刷新token的邏輯都不一樣,我這里舉一個(gè)簡(jiǎn)單的例子

為什么我們需要有取消請(qǐng)求的功能,如果當(dāng)我們的頁面在發(fā)送請(qǐng)求時(shí),用戶主動(dòng)退出當(dāng)前界面或者app應(yīng)用程序退出的時(shí)候數(shù)據(jù)還沒有響應(yīng),那我們就需要取消該網(wǎng)絡(luò)請(qǐng)求,防止不必要的錯(cuò)誤。

由 服務(wù)器生成 的 一小段文本信息 ,發(fā)送給瀏覽器,瀏覽器把 cookie 以kv形式保存到本地 某個(gè)目錄下的文本文件內(nèi),下一次請(qǐng)求同一網(wǎng)站時(shí)會(huì)把該 cookie 發(fā)送給服務(wù)器。

cookie 的使用需要用到兩個(gè)第三方組件 dio_cookie_manager 和 cookie_jar

因?yàn)樵谖覀兤綍r(shí)的開發(fā)過程中,會(huì)碰到一種情況,在進(jìn)行網(wǎng)絡(luò)請(qǐng)求時(shí),我們希望能正常訪問到上次的數(shù)據(jù),對(duì)于用戶的體驗(yàn)比較好,而不是展示一個(gè)空白的頁面,該緩存主要是 《Flutter實(shí)戰(zhàn)》網(wǎng)絡(luò)接口緩存 提供參考。

我們?cè)诔绦蛲顺龊髢?nèi)存緩存將會(huì)消失,所以我們用 shared_preferences 進(jìn)行磁盤緩存數(shù)據(jù)。

在我們用flutter進(jìn)行抓包的時(shí)候需要配置 Dio 代理。由 DefaultHttpClientAdapter 提供了一個(gè) onHttpClientCreate 回調(diào)來設(shè)置底層 HttpClient 的代理。

用于驗(yàn)證正在訪問的網(wǎng)站是否真實(shí)。提供安全性,因?yàn)樽C書和域名綁定,并且由根證書機(jī)構(gòu)簽名確認(rèn)。

日志打印主要是幫助我們開發(fā)時(shí)進(jìn)行輔助排錯(cuò)

阿里IM技術(shù)分享(六):閑魚億級(jí)IM消息系統(tǒng)的離線推送到達(dá)率優(yōu)化

本文由阿里閑魚技術(shù)團(tuán)隊(duì)逸昂分享,原題“消息鏈路優(yōu)化之弱感知鏈路優(yōu)化”,有修訂和改動(dòng),感謝作者的分享。

閑魚的IM消息系統(tǒng)作為買家與賣家的溝通工具,增進(jìn)理解、促進(jìn)信任,對(duì)閑魚的商品成交有重要的價(jià)值,是提升用戶體驗(yàn)最關(guān)鍵的環(huán)節(jié)。

然而,隨著業(yè)務(wù)體量的快速增長(zhǎng),當(dāng)前這套消息系統(tǒng)正面臨著諸多急待解決的問題。

以下幾個(gè)問題典型最為典型:

1) 在線消息的體驗(yàn)提升;

2) 離線推送的到達(dá)率;

3) 消息玩法與消息底層系統(tǒng)的耦合過強(qiáng)。

經(jīng)過評(píng)估,我們認(rèn)為現(xiàn)階段離線推送的到達(dá)率問題最為關(guān)鍵,對(duì)用戶體驗(yàn)影響較大。

本文將要分享的是閑魚IM消息在解決離線推送的到達(dá)率方面的技術(shù)實(shí)踐,內(nèi)容包括問題分析和技術(shù)優(yōu)化思路等 ,希望能帶給你啟發(fā)。

(本文已同步發(fā)布于: ?)

本文是系列文章的第6篇,總目錄如下:

《 阿里IM技術(shù)分享(一):企業(yè)級(jí)IM王者——釘釘在后端架構(gòu)上的過人之處 》

《 阿里IM技術(shù)分享(二):閑魚IM基于Flutter的移動(dòng)端跨端改造實(shí)踐 》

《 阿里IM技術(shù)分享(三):閑魚億級(jí)IM消息系統(tǒng)的架構(gòu)演進(jìn)之路 》

《 阿里IM技術(shù)分享(四):閑魚億級(jí)IM消息系統(tǒng)的可靠投遞優(yōu)化實(shí)踐 》

《 阿里IM技術(shù)分享(五):閑魚億級(jí)IM消息系統(tǒng)的及時(shí)性優(yōu)化實(shí)踐 》

《 阿里IM技術(shù)分享(六):閑魚億級(jí)IM消息系統(tǒng)的離線推送到達(dá)率優(yōu)化 》(* 本文)

從數(shù)據(jù)通信鏈接的技術(shù)角度,我們根據(jù)閑魚客戶端是否在線,將整體消息鏈路大致分為強(qiáng)感知鏈路和弱感知鏈路。

強(qiáng)感知鏈路由以下子系統(tǒng)或模塊:

1) 發(fā)送方客戶端;

2) idleapi-message(閑魚的消息網(wǎng)關(guān));

3) heracles(閑魚的消息底層服務(wù));

4) accs(阿里自研的長(zhǎng)連接通道);

5) 接收方客戶端組成。

整條鏈路的核心指標(biāo)在于端到端延遲和消息到達(dá)率。

強(qiáng)感知鏈路中的雙方都是在線的,消息到達(dá)客戶端就可以保證接收方感知到。強(qiáng)感知鏈路的主要痛點(diǎn)在消息的端到端延遲。

弱感知鏈路與強(qiáng)感知鏈路的主要不同在于: 弱感知鏈路的接收方是離線的,需要依賴離線推送這樣的方式送達(dá)。

因此弱感知鏈路的用戶感知度不強(qiáng),其核心指標(biāo)在于消息的到達(dá)率,而非延遲。

所以當(dāng)前階段,優(yōu)化弱感知鏈路的重點(diǎn)也就是提升離線消息的到達(dá)率。換句話說, 提升離線消息到達(dá)率問題,也就是優(yōu)化弱感知鏈路本身 。

下圖一張整個(gè)IM消息系統(tǒng)的架構(gòu)圖,感受下整體鏈路:

如上圖所示,各主要組件和子系統(tǒng)分工如下:

1) HSF是一個(gè)遠(yuǎn)程服務(wù)框架,是dubbo的內(nèi)部版本;

2) tair是阿里自研的分布式緩存框架,支持 memcached、Redis、LevelDB 等不同存儲(chǔ)引擎;

3) agoo是阿里的離線推送中臺(tái),負(fù)責(zé)整合不同廠商的離線推送通道,向集團(tuán)用戶提供一個(gè)統(tǒng)一的離線推送服務(wù);

4) accs是阿里自研的長(zhǎng)連接通道,為客戶端、服務(wù)端的實(shí)時(shí)雙向交互提供便利;

5) lindorm是阿里自研的NoSQL產(chǎn)品,與HBase有異曲同工之妙;

6) 域環(huán)是閑魚消息優(yōu)化性能的核心結(jié)構(gòu),用來存儲(chǔ)用戶最新的若干條消息。

強(qiáng)感知鏈路和弱感知鏈路在通道選擇上是不同的:

1) 強(qiáng)感知鏈路使用accs這個(gè)在線通道;

2) 弱感知鏈路使用agoo這個(gè)離線通道。

通俗了說,弱感知鏈路指的就是離線消息推送系統(tǒng)。

相比較于在線消息和端內(nèi)推送(也就是上面說的強(qiáng)感知鏈路),離線推送難以確保被用戶感知到。

典型的情況包括:

1) 未發(fā)送到用戶設(shè)備:即推送未送達(dá)用戶設(shè)備,這種情況可以從通道的返回分析;

2) 發(fā)送到用戶設(shè)備但沒有展示到系統(tǒng)通知欄:閑魚曾遇到通道返回成功,但是用戶未看到推送的案例;

3) 展示到通知欄,并被系統(tǒng)折疊:不同安卓廠商對(duì)推送的折疊策略不同,被折疊后,需用戶主動(dòng)展開才能看到內(nèi)容,觸達(dá)效果明顯變差;

4) 展示到通知欄,并被用戶忽略:離線推送的點(diǎn)擊率相比于在線推送更低。

針對(duì)“1)未發(fā)送到用戶設(shè)備”,原因有:

1) 離線通道的token失效;

2) 參數(shù)錯(cuò)誤;

3) 用戶關(guān)閉應(yīng)用通知;

4) 用戶已卸載等。

針對(duì)“3)展示到通知欄,并被系統(tǒng)折疊”,原因有:

1) 通知的點(diǎn)擊率;

2) 應(yīng)用在廠商處的權(quán)重;

3) 推送的數(shù)量等。

針對(duì)“4)展示到通知欄,并被用戶忽略”,原因有:

1) 用戶不愿意查看推送;

2) 用戶看到了推送,但是對(duì)內(nèi)容不感興趣;

3) 用戶在忙別的事,無暇處理。

總之: 以上這些離線消息推送場(chǎng)景,對(duì)于用戶來說感知度不高,我們也便稱之為弱感知鏈路。

我們的弱感知鏈路分為3部分,即:

1) 系統(tǒng);

2) 通道;

3) 用戶。

共包含了Hermes、agoo、廠商、設(shè)備、用戶、承接頁這幾個(gè)環(huán)節(jié)。具體如下圖所示。

從推送的產(chǎn)生到用戶最終進(jìn)入APP,共分為如下幾個(gè)步驟:

步驟1 :Hermes是閑魚的用戶觸達(dá)系統(tǒng),負(fù)責(zé)人群管理、內(nèi)容管理、時(shí)機(jī)把控,是整個(gè)弱感知鏈路的起點(diǎn)。;

步驟2 :agoo是阿里內(nèi)部承接離線推送的中臺(tái),是閑魚離線推送能力的基礎(chǔ);

步驟3 :agoo實(shí)現(xiàn)離線推送依靠的是廠商的推送通道(如:蘋果的 apns通道 、Google的fcm通道、及 國(guó)內(nèi)各廠商的自建通道 。;

步驟4 :通過廠商的通道,推送最終出現(xiàn)在用戶的設(shè)備上,這是用戶能感知到推送的前提條件;

步驟5 :如果用戶剛巧看到這條推送,推送的內(nèi)容也很有趣,在用戶的主動(dòng)點(diǎn)擊下會(huì)喚起APP,打開承接頁,進(jìn)而給用戶展示個(gè)性化的商品。

經(jīng)過以上5個(gè)步驟,至此弱感知鏈路就完成了使命。

弱感知鏈路的核心問題在于:

1) 推送的消息是否投遞給了用戶;

2) 已投遞到的消息用戶是否有感知。

這對(duì)應(yīng)推送的兩個(gè)階段:

1) 推送消息是否已到達(dá)設(shè)備;

2) 用戶是否查看推送并點(diǎn)擊。

其中: 到達(dá)設(shè)備這個(gè)階段是最基礎(chǔ)的,也是本次優(yōu)化的核心。

我們可以將每一步的消息處理量依次平鋪,展開為一張漏斗圖,從而直觀的查看鏈路的瓶頸。

漏斗圖斜率最大的地方是優(yōu)化的重點(diǎn),差異小的地方不需要優(yōu)化:

通過分析以上漏斗圖,弱感知鏈路的優(yōu)化重點(diǎn)在三個(gè)方面:

1) agoo受理率:是指我們發(fā)送推送請(qǐng)到的數(shù)量到可以通過agoo(阿里承接離線推送的中臺(tái))轉(zhuǎn)發(fā)到廠商通道的數(shù)量之間的漏斗;

2) 廠商受理率:是指agoo中臺(tái)受理的量到廠商返回成功的量之間的漏斗;

3) Push點(diǎn)擊率:也就通過以上通道最終已送到到用戶終端的消息,是否最終轉(zhuǎn)化為用戶的主動(dòng)“點(diǎn)擊”。

有了優(yōu)化方向,我們來看看優(yōu)化手段吧。

跟隨推送的視角,順著鏈路看一下我們是如何進(jìn)行優(yōu)化的。

用戶的推送,從 Hermes 站點(diǎn)搭乘“班車”,駛向下一站:? agoo 。

這是推送經(jīng)歷的第一站。到站一看,傻眼了,只有不到一半的推送到站下車了。這是咋回事嘞?

這就要先說說 agoo 了,調(diào)用 agoo 有兩種方式:

1) 指定設(shè)備和客戶端,agoo直接將推送投遞到相應(yīng)的設(shè)備;

2) 指定用戶和客戶端,agoo根據(jù)內(nèi)部的轉(zhuǎn)換表,找到用戶對(duì)應(yīng)的設(shè)備,再進(jìn)行投遞。

我們的系統(tǒng)不保存用戶的設(shè)備信息。因此,是按照用戶來調(diào)用agoo的。

同時(shí): 由于沒有用戶的設(shè)備信息,并不知道用戶是 iOS 客戶端還是 Android 客戶端。工程側(cè)不得不向 iOS 和 Android 都發(fā)送一遍推送。雖然保證了到達(dá),但是,一半的調(diào)用都是無效的。

為了解這個(gè)問題: 我們使用了agoo的設(shè)備信息。將用戶轉(zhuǎn)換設(shè)備這一階段提前到了調(diào)用 agoo 之前,先明確用戶對(duì)應(yīng)的設(shè)備,再指定設(shè)備調(diào)用 agoo,從而避免無效調(diào)用。

agoo調(diào)用方式優(yōu)化后,立刻剔除了無效調(diào)用,agoo受理率有了明顯提升。

至此: 我們總算能對(duì) agoo 受理失敗的真正原因做一個(gè)高大上的分析了。

根據(jù)統(tǒng)計(jì): 推送被 agoo 拒絕的主要原因是——用戶關(guān)閉了通知權(quán)限。同時(shí),我們對(duì) agoo 調(diào)用數(shù)據(jù)的進(jìn)一步分析發(fā)現(xiàn)——有部分用戶找不到對(duì)應(yīng)的設(shè)備。 優(yōu)化到此,我們猛然發(fā)現(xiàn)多了兩個(gè)問題。

那就繼續(xù)優(yōu)化唄:

1) 通知體驗(yàn)優(yōu)化,引導(dǎo)打開通知權(quán)限;

2) 與agoo共建設(shè)備庫,解決設(shè)備轉(zhuǎn)換失敗的問題。

這兩個(gè)優(yōu)化方向又是一片新天地,我們擇日再聊。

推送到達(dá) agoo ,分機(jī)型搭乘廠商“專列”,駛向下一站:用戶設(shè)備。

這是推送經(jīng)歷的第二站。出站查票,發(fā)現(xiàn)竟然超員了。

于是乎: 我們每天有大量推送因?yàn)槌^廠商設(shè)定的限額被攔截。

為什么會(huì)這樣呢?

實(shí)際上: 提供推送通道的廠商(沒錯(cuò), 各手機(jī)廠商的自家推送通道良莠不齊 ),為了保證用戶體驗(yàn),會(huì)對(duì)每個(gè)應(yīng)用能夠推送的消息總量進(jìn)行限制。

對(duì)于廠商而言,這個(gè)限制會(huì)根據(jù)推送的類型和應(yīng)用的用戶規(guī)模設(shè)定——推送主要分為產(chǎn)品類的推送和營(yíng)銷類的推送。

廠商推送通道對(duì)于不同類型消息的限制是:

1) 對(duì)于產(chǎn)品類推送,廠商會(huì)保證到達(dá);

2) 對(duì)于營(yíng)銷類推送,廠商會(huì)進(jìn)行額度限制;

3) 未標(biāo)記的推送,默認(rèn)作為營(yíng)銷類推送對(duì)待。

我們剛好沒有對(duì)推送進(jìn)行標(biāo)記,因此觸發(fā)了廠商的推送限制。

這對(duì)我們的用戶來說,會(huì)帶來困擾。閑魚的交易,很依賴買賣家之間的消息互動(dòng)。這部分消息是需要確保到達(dá)的。

同樣: 訂單類的消息、用戶的關(guān)注,也需要保證推送給用戶。

根據(jù)主流廠商的接口協(xié)議,我們將推送的消息分為以下幾類,并進(jìn)行相應(yīng)標(biāo)記:

1) 即時(shí)通訊消息;

2) 訂單狀態(tài)變化;

3) 用戶關(guān)注內(nèi)容;

4) 營(yíng)銷消息這幾類。

同時(shí),在業(yè)務(wù)上,我們也進(jìn)行了推送的治理——將用戶關(guān)注度不高的消息,取消推送,避免打擾。

經(jīng)過這些優(yōu)化,因?yàn)槌^廠商限額而被攔截的推送實(shí)現(xiàn)了清零。

通過優(yōu)化agoo受理率、廠商受理率,我們解決了推送到達(dá)量的瓶頸。但即使消息被最終送達(dá),用戶到底點(diǎn)擊了沒有?這才是消息推送的根本意義所在。

于是,在日常的開發(fā)測(cè)試過程中,我們發(fā)現(xiàn)了推送的兩個(gè)體驗(yàn)問題:

1) 用戶點(diǎn)擊Push有開屏廣告;

2) 營(yíng)銷Push也有權(quán)限校驗(yàn),更換用戶登陸后無法點(diǎn)擊。

對(duì)于開屏廣告功能,我們?cè)黾恿薖ush點(diǎn)擊跳過廣告的能力。

針對(duì)Push的權(quán)限校驗(yàn)功能,閑魚根據(jù)場(chǎng)景做了細(xì)分:

1) 涉及個(gè)人隱私的推送,保持權(quán)限校驗(yàn)不變;

2) 營(yíng)銷類的推送,放開權(quán)限校驗(yàn)。

以上是點(diǎn)擊體驗(yàn)的優(yōu)化,我們還需要考慮用戶的點(diǎn)擊意愿。

用戶點(diǎn)擊量與推送的曝光量、推送素材的有趣程度相關(guān)。推送的曝光量又和推送的到達(dá)量、推送的到達(dá)時(shí)機(jī)有關(guān)。

具體的優(yōu)化手段是:

1) 在推送內(nèi)容上:我們需要優(yōu)化的是推送的時(shí)機(jī)和相應(yīng)的素材;

2) 在推送時(shí)機(jī)上:算法會(huì)根據(jù)用戶的偏好和個(gè)性化行為數(shù)據(jù),計(jì)算每個(gè)用戶的個(gè)性化推送時(shí)間,在用戶空閑的時(shí)間推送(避免在不合適的時(shí)間打擾用戶,同時(shí)也能提升用戶看到推送的可能性)。

3) 在推送素材上:算法會(huì)根據(jù)素材的實(shí)時(shí)點(diǎn)擊反饋,對(duì)素材做實(shí)時(shí)賽馬。只發(fā)用戶感興趣的素材,提高用戶點(diǎn)擊意愿。

通過以上我們的分析和技術(shù)優(yōu)化手段,整體弱推送鏈路鏈路有了不錯(cuò)的提升,離線消息的到達(dá)率相對(duì)提升了兩位數(shù)。

本篇主要和大家聊的是只是IM消息系統(tǒng)鏈路中的一環(huán)——弱感知鏈路的優(yōu)化,落地到到具體的業(yè)務(wù)也就是離線消息送達(dá)率問題。

整體IM消息系統(tǒng),還是一個(gè)比較復(fù)雜的領(lǐng)域。

我們?cè)谙⑾到y(tǒng)的發(fā)展過程中,面臨著如下問題:

1) 如何進(jìn)行消息的鏈路追蹤;

2) 如何保證IM消息的快速到達(dá)(見《 閑魚億級(jí)IM消息系統(tǒng)的及時(shí)性優(yōu)化實(shí)踐 》);

3) 如何將消息的玩法和底層能力分離;

4) 離線推送中如何通過用戶找到對(duì)應(yīng)的設(shè)備。

這些問題,我們?cè)谝郧暗奈恼轮杏兴窒恚院笠矔?huì)陸續(xù)分享更多,敬請(qǐng)期待。

[1]? Android P正式版即將到來:后臺(tái)應(yīng)用保活、消息推送的真正噩夢(mèng)

[2]? 一套高可用、易伸縮、高并發(fā)的IM群聊、單聊架構(gòu)方案設(shè)計(jì)實(shí)踐

[3]? 一套億級(jí)用戶的IM架構(gòu)技術(shù)干貨(上篇):整體架構(gòu)、服務(wù)拆分等

[4]? 一套億級(jí)用戶的IM架構(gòu)技術(shù)干貨(下篇):可靠性、有序性、弱網(wǎng)優(yōu)化等

[5]? 從新手到專家:如何設(shè)計(jì)一套億級(jí)消息量的分布式IM系統(tǒng)

[6]? 企業(yè)微信的IM架構(gòu)設(shè)計(jì)揭秘:消息模型、萬人群、已讀回執(zhí)、消息撤回等

[7]? 融云技術(shù)分享:全面揭秘億級(jí)IM消息的可靠投遞機(jī)制

[8]? 移動(dòng)端IM中大規(guī)模群消息的推送如何保證效率、實(shí)時(shí)性?

[9]? 現(xiàn)代IM系統(tǒng)中聊天消息的同步和存儲(chǔ)方案探討

[10]? 新手入門一篇就夠:從零開發(fā)移動(dòng)端IM

[11]? 移動(dòng)端IM開發(fā)者必讀(一):通俗易懂,理解移動(dòng)網(wǎng)絡(luò)的“弱”和“慢”

[12]? 移動(dòng)端IM開發(fā)者必讀(二):史上最全移動(dòng)弱網(wǎng)絡(luò)優(yōu)化方法總結(jié)

[13]? IM消息送達(dá)保證機(jī)制實(shí)現(xiàn)(一):保證在線實(shí)時(shí)消息的可靠投遞

[14]? IM消息送達(dá)保證機(jī)制實(shí)現(xiàn)(二):保證離線消息的可靠投遞

[15]? 零基礎(chǔ)IM開發(fā)入門(一):什么是IM系統(tǒng)?

[16]? 零基礎(chǔ)IM開發(fā)入門(二):什么是IM系統(tǒng)的實(shí)時(shí)性?

[17]? 零基礎(chǔ)IM開發(fā)入門(三):什么是IM系統(tǒng)的可靠性?

[18]? 零基礎(chǔ)IM開發(fā)入門(四):什么是IM系統(tǒng)的消息時(shí)序一致性?

(本文已同步發(fā)布于: ?)

網(wǎng)站標(biāo)題:flutter緩存框架,flutter 緩存
標(biāo)題鏈接:http://chinadenli.net/article42/dsegshc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)搜索引擎優(yōu)化靜態(tài)網(wǎng)站網(wǎng)站制作手機(jī)網(wǎng)站建設(shè)全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)