3
更新于2020-03-31 14:27:35
4324
閱讀
0
回復(fù)
由于作者本文是做IM出生,本身對即時通訊技術(shù)比較感興趣,加上身邊都是做即時通訊的朋友,于是那天一起吐槽了一下這個功能。對于已經(jīng)穩(wěn)定的微信架構(gòu),在前端加一些這些功能點,本身就so easy,只是張小龍愿不愿意做而已。
這里不得不佩服的是,微信真的目前來說已經(jīng)很穩(wěn)了,以前我們公司,自己搭建的國際服務(wù)器,會每隔段時間出一次事故,即便國內(nèi)億級用戶量的架構(gòu)師都已經(jīng)參與進(jìn)來了(在這里深深佩服Telegram的開發(fā)者)。即時通訊里面出現(xiàn)一個小問題,就會被無限放大,因為它不像傳統(tǒng)的網(wǎng)站,它是客戶端,需要下載安裝,如果用戶使用發(fā)現(xiàn)了問題,就會一直不斷重現(xiàn),假如是說這個版本的消息推送一直有問題,那么這個版本,用戶就要被這個問題一直無限的重復(fù)騷擾。而且可能你不知不覺,他已經(jīng)卸載了
總之,想提升技術(shù),推薦可以去做即時通訊,那里面一年有你在外面五年都學(xué)不到的東西,游戲、社交都算,年終獎也是最高的
正式開始
首先,微信采用原生開發(fā),例如IOS,采用的是object-c編寫,那么就叫客戶端,每個即時通
訊的客戶端,也是一臺服務(wù)器,所以做即時通訊的客戶端開發(fā),本身就相當(dāng)半個全棧工程師?蛻舳耍驮摀碛锌蛻舳说哪芰,那么它就擁有數(shù)據(jù)庫,例如sqlite3,嵌入式的數(shù)據(jù)庫。Node.js也可以使用,例如Electron
據(jù)我觀察,微信的表情包評論,也是灰度發(fā)布,即使你先更新了,但不會立馬就能使用,不過你肯定可以看到。
首次更新、登陸,得到這個結(jié)果,然后接受到?jīng)Q定能否看到發(fā)送表情包推送的tag,存入數(shù)據(jù)庫,這樣就每次登陸就會數(shù)據(jù)庫取這個tag決定能否展示發(fā)送表情包評論的控制臺,相當(dāng)于我們存入localStorage一樣。
之后,管理層需要回收這個功能,于是需要Push一次
微信不更新是如何做到控制朋友圈的表情評論
 
服務(wù)器根據(jù)一定的規(guī)則,采用灰度回收,可能是片區(qū)輪詢式推送,更新tag,讓客戶端喪失表情評論的選擇界面,這樣就失去了評論功能,但是還是可以看到之前的評論,因為源碼里、數(shù)據(jù)庫的展示、數(shù)據(jù)存儲都還在。
這里很簡單就把如何灰度發(fā)布、灰度回收,講清楚了。既然講了圖片,那么就講講客戶端的表情存儲
即時通訊既是一個服務(wù)器,也是一個客戶端,那么它就是也擁有文件io的能力,調(diào)用各種插件的能力。
我們看到的表情包,例如在IOS上是300個上限,你點進(jìn)去的時候可以發(fā)現(xiàn)
我們的gif圖表情包,是縮略圖,是不會動的,,取的第一幀,這里就要吐槽下Node.js,看似什么都能做,但是很多事情都做得不太好,壓縮圖片都不是非常完美,即便使用了C++插件,當(dāng)你重度使用過Node.js,就應(yīng)該考慮系統(tǒng)學(xué)一門真正的后臺語言,例如Golang,但是Node.js在某些地方用來做工具是非常棒的。
這些縮略圖都是存儲在客戶端,可能是在某個表的字段里,存儲著你我的小秘密的數(shù)組集合,然后出來遍歷展示一波?
微信不更新是如何做到控制朋友圈的表情評論
 
想要在哪里使用這個組件,引入一波就行,例如在評論中引用,點擊表情向服務(wù)器推送,對應(yīng)的數(shù)據(jù)type,表情包的src地址。服務(wù)器接受到message后,對當(dāng)前這條朋友圈的相關(guān)人推送消息,更新朋友圈提示即可。
微信不更新是如何做到控制朋友圈的表情評論
 
這個思路,就跟用戶在微博或者微信點贊一樣,默認(rèn)是成功的,但是如果失敗了,那么下次登陸或者刷新時候,會顯示沒有點贊~不止是前端,后端也需要異步,最近有對微服務(wù)架構(gòu)的進(jìn)行系統(tǒng)學(xué)習(xí),感覺真的是很多東西相通的,只是方式變了而已。底層的處理思維邏輯其實都差不多,但是有一點要注意的是,學(xué)一個東西,最忌諱學(xué)一半而不精,三心二意,這樣很可怕。系統(tǒng)學(xué)習(xí)一個東西,真的很重要
例如webpack,網(wǎng)上一大堆文章教你怎么配置,怎么代碼分割,但是比較少人跟你說webpack的運(yùn)行機(jī)制、熱更新原理、loader、plugin原理,babel插件怎么寫,怎么定制開發(fā)你的webpack-plugin,這些需要時間學(xué)習(xí)成本的東西才最重要,才最能提升你自己
反對
回帖
  • 人贊過
  • 人反對
查看更多
查看更多
相關(guān)推薦

快速回帖 使用(可批量傳圖、插入視頻等)

表情
新用戶注冊
  Ctrl + Enter 快速發(fā)布
 

 19