Jack Jiang

          我的最新工程MobileIMSDK:http://git.oschina.net/jackjiang/MobileIMSDK
          posts - 506, comments - 13, trackbacks - 0, articles - 1

               摘要: 1、引言HTTPS(全稱: Hypertext Transfer Protocol Secure,超文本傳輸安全協(xié)議),是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版。本文,就來深入介紹下其原理。補充:限于篇幅,本文對于https的相關(guān)技術(shù)要點的介紹盡量簡明扼要,如想要詳細了解HTTPS的方方面面,請閱讀《即時通訊安全篇(七):如果這樣來理解HTTPS,一篇就夠了》。(本文同步發(fā)布于:ht...  閱讀全文

          posted @ 2019-04-08 11:48 Jack Jiang 閱讀(160) | 評論 (0)編輯 收藏

               摘要: 1、系列文章引言1.1 適合誰來閱讀?本系列文章盡量使用最淺顯易懂的文字、圖片來組織內(nèi)容,力求通信技術(shù)零基礎(chǔ)的人群也能看懂。但個人建議,至少稍微了解過網(wǎng)絡(luò)通信方面的知識后再看,會更有收獲。如果您大學(xué)學(xué)習(xí)過《計算機網(wǎng)絡(luò)》這門課,那么一定不要錯過本系列文章。特別推薦即時通訊開發(fā)者來閱讀,因為針對移動弱網(wǎng)的問題,確實可以找到很多有價值的答案。友情提示:本系列文章可能涉及以下通信技術(shù)范疇,如您有興趣,也可...  閱讀全文

          posted @ 2019-04-02 13:06 Jack Jiang 閱讀(139) | 評論 (0)編輯 收藏

          1、引言

          溝通是人類的最基本需求,復(fù)雜多變的溝通內(nèi)容、溝通方式,正是人類文明之所以如此璀璨的關(guān)鍵所在。

          在自然界中,要完成一件事情的溝通,我們可以直接通過聲音傳遞給對方,這是再平常不過的事了(靠“吼”就能解決)。

          隨著計算機的普及,互聯(lián)網(wǎng)改變了我們的生活,甚至改變了我們的溝通方式。現(xiàn)在,“有什么事微信或QQ上找我”已經(jīng)是很多的人口頭禪了。

          那么,作為不懂技術(shù)的普通人,有沒有想過,你每次使用QQ或微這種IM聊天應(yīng)用時,你所發(fā)送的消息,是如何被計算機送達給對方的?(這顯然不可能靠“吼”解決 ^_^)

          本文將從非技術(shù)人員的視角,為你講解一下IM聊天應(yīng)用中的聊天消息是怎么發(fā)送的。

          學(xué)習(xí)交流:

          - 即時通訊/推送技術(shù)開發(fā)交流4群:101279154[推薦]

          - 移動端IM開發(fā)入門文章:《新手入門一篇就夠:從零開發(fā)移動端IM

          (本文同步發(fā)布于:http://www.52im.net/thread-2433-1-1.html

          2、關(guān)于作者

          鞏鵬軍:專注移動開發(fā)十多年,熱愛即時通訊技術(shù)。個人微信公眾號:“鞏鵬軍”。

          3、閱讀對象

          本文適合非技術(shù)背景的讀者閱讀,如您喜歡本文,則下列文章您也可能喜歡:

          技術(shù)往事:微信估值已超5千億,雷軍曾有機會收編張小龍及其Foxmail

          QQ和微信兇猛成長的背后:騰訊網(wǎng)絡(luò)基礎(chǔ)架構(gòu)的這些年

          閑話即時通訊:騰訊的成長史本質(zhì)就是一部QQ成長史

          騰訊開發(fā)微信花了多少錢?技術(shù)難度真這么大?難在哪?

          技術(shù)往事:史上最全QQ圖標(biāo)變遷過程,追尋IM巨人的演進歷史

          開發(fā)往事:深度講述2010到2015,微信一路風(fēng)雨的背后

          開發(fā)往事:記錄微信3.0版背后的故事(距微信1.0發(fā)布9個月時)

          微信七年回顧:歷經(jīng)多少質(zhì)疑和差評,才配擁有今天的強大

          前創(chuàng)始團隊成員分享:盤點微信的前世今生——微信成功的必然和偶然

          QQ的成功,遠沒有你想象的那么順利和輕松

          [技術(shù)腦洞] 如果把14億中國人拉到一個微信群里技術(shù)上能實現(xiàn)嗎?

          QQ和微信止步不前,意味著即時通訊社交應(yīng)用創(chuàng)業(yè)的第2春已來?

          那些年微信開發(fā)過的雞肋功能,及其帶給我們的思考

          為什么說即時通訊社交APP創(chuàng)業(yè)就是一個坑?

          即時通訊創(chuàng)業(yè)必讀:解密微信的產(chǎn)品定位、創(chuàng)新思維、設(shè)計法則等

          老羅最新發(fā)布了“子彈短信”這款I(lǐng)M,主打熟人社交能否對標(biāo)微信?

          盤點和反思在微信的陰影下艱難求生的移動端IM應(yīng)用

          QQ現(xiàn)狀深度剖析:你還認(rèn)為QQ已經(jīng)被微信打敗了嗎?

          那些年微信開發(fā)過的雞肋功能,及其帶給我們的思考

          漸行漸遠的人人網(wǎng):十年親歷者的互聯(lián)網(wǎng)社交產(chǎn)品復(fù)盤和反思

          中國互聯(lián)網(wǎng)社交二十年:全民見證的互聯(lián)網(wǎng)創(chuàng)業(yè)演義

          IM熱門功能討論:為什么微信里沒有消息“已讀”功能?

          讀懂微信:從1.0到7.0版本,一個主流IM社交工具的進化史

          王欣回應(yīng)微信封禁,解釋為何取名“馬桶MT”

          同為IM社交產(chǎn)品中的王者,QQ與微信到底有什么區(qū)別

          還原真實的騰訊:從最不被看好,到即時通訊巨頭的草根創(chuàng)業(yè)史

          如果您是專業(yè)技術(shù)人員,則跟本文相關(guān)的專業(yè)技術(shù)知識等,可以以下文章中找到:

          從客戶端的角度來談?wù)勔苿佣薎M的消息可靠性和送達機制

          移動端IM中大規(guī)模群消息的推送如何保證效率、實時性?

          IM消息送達保證機制實現(xiàn)(一):保證在線實時消息的可靠投遞

          IM消息送達保證機制實現(xiàn)(二):保證離線消息的可靠投遞

          如何保證IM實時消息的“時序性”與“一致性”?

          IM單聊和群聊中的在線狀態(tài)同步應(yīng)該用“推”還是“拉”?

          IM群聊消息如此復(fù)雜,如何保證不丟不重?

          完全自已開發(fā)的IM該如何設(shè)計“失敗重試”機制?

          好了,費話不多說,我們開始正文部分。。。

          4、在微信里,我們發(fā)送一條聊天消息是如此簡單

          李雷在手機上打開微信(IM客戶端),在聊天輸框中輸入“Hello!”,點擊發(fā)送。幾乎是瞬間,韓梅梅手機上的微信(IM客戶端)就會顯示李雷的頭像后面跟著“Hello!”。

          整個過程如下圖所示:

          ▲ 一條聊天消息發(fā)送的全過程

          從上面的圖示可以看到,整個過程涉及三大部分:

          1)李雷手機上的IM客戶端(微信);

          2)IM服務(wù)端;

          3)韓梅梅手機上的IM客戶端(微信)。

          下面,我們逐一介紹每個部分的具體工作原理。

          5、消息發(fā)送者:發(fā)送端是怎么工作的?

          先看看發(fā)送端,李雷手機上的IM客戶端中發(fā)生了什么?

          從上圖可以看出,發(fā)送一條信息經(jīng)過三個步驟:

          1)消息編輯:

          李雷操作鍵盤輸入要發(fā)送的文字,點擊“發(fā)送”按鈕。這一切都發(fā)生在IM客戶端的界面模塊中。類似用筆在信紙上寫信,鍵盤就是筆,聊天框就是信紙;

          2)消息入庫:

          IM客戶端中的數(shù)據(jù)模塊會先將聊天內(nèi)容“Hello!”加上誰發(fā)給誰等信息,按標(biāo)準(zhǔn)格式打包為一條IM消息,并存入本地數(shù)據(jù)庫。這類似信紙裝入信封,填寫地址,投入郵箱的過程。一條IM消息就是一封信,本地數(shù)據(jù)庫就是李雷家的郵箱;

          3)消息發(fā)送:

          IM客戶端中的網(wǎng)絡(luò)模塊通過長連接將IM消息發(fā)給IM服務(wù)端。這類似郵遞員將信件匯總發(fā)往郵政局。網(wǎng)絡(luò)模塊就是郵遞員,IM服務(wù)端就是郵政局。(長連接是IM客戶端跟IM服務(wù)端一直保持的網(wǎng)絡(luò)鏈路)。

          6、消息“中轉(zhuǎn)站”:IM服務(wù)端是怎么工作的?

          擔(dān)負“郵政局”職責(zé)的IM服務(wù)端是IM世界中全知全能的神,它認(rèn)識所有人,經(jīng)手所有消息,跟每個人都一直保持聯(lián)系(長連接)。

          每條消息在IM服務(wù)端中都要至少經(jīng)過以下處理:

          1)消息接收:

          長連接服務(wù)從和李雷的長連接接收到“Hello!”的IM消息。IM服務(wù)端跟所有登錄的IM客戶端保持長連接(一條一直活躍的網(wǎng)絡(luò)鏈路,每個客戶端一條),長連接上定時會有心跳消息來監(jiān)測客戶端的在線離線狀態(tài),心跳消息就像郵遞員每天都會在郵政局和郵箱之間巡回一樣;

          2)消息驗證:

          用戶服務(wù)查詢IM消息的目標(biāo)人韓梅梅,以及發(fā)送人李雷和目標(biāo)人韓梅梅是否好友關(guān)系,確保韓梅梅是真實存在而非虛構(gòu)的,并且韓梅梅愿意接收李雷的消息,否則會給李雷退信。(一般IM服務(wù)端會將IM消息的副本存入數(shù)據(jù)庫中備份);

          3)消息轉(zhuǎn)發(fā):

          在長連接服務(wù)中找到跟韓梅梅手機上IM客戶端保持的長連接,并將消息發(fā)送給韓梅梅。

          7、消息接收者:接收端又是怎么工作的呢?

          下面看看韓梅梅手機上發(fā)生了什么?

          韓梅梅手機上的IM客戶端和李雷(發(fā)送者)的是一樣的,但處理步驟是不同的:

          1)消息接收:

          網(wǎng)絡(luò)模塊通過跟IM服務(wù)端保持的長連接接收IM消息;

          2)消息入庫:

          網(wǎng)絡(luò)模塊會將IM消息存入本地數(shù)據(jù)庫,即信件投入了韓梅梅家的郵箱。網(wǎng)絡(luò)模塊就是郵遞員,本地數(shù)據(jù)庫就是韓梅梅家的郵箱;

          3)消息展示:

          界面模塊獲取發(fā)送人頭像,和消息內(nèi)容一起顯示在聊天界面上。

          經(jīng)過上述過程,韓梅梅在自己手機上就看到了李雷發(fā)過來的“Hello!”,因為李雷和韓梅梅都是一直和服務(wù)器保持長連接,所以上述過程是瞬間完成的,李雷和韓梅梅感覺就像面對面聊天一樣方便。這也是Instant Messaging名字的來歷。

          (本文同步發(fā)布于:http://www.52im.net/thread-2433-1-1.html

          posted @ 2019-04-01 18:22 Jack Jiang 閱讀(150) | 評論 (0)編輯 收藏

               摘要: 【來源申明】本文原文來自:微信公眾號“鮮棗課堂”,官方網(wǎng)站:xzclass.com,原題為:《通信交換的百年滄桑(上)》,本文引用時已征得原作者同意。為了更好的內(nèi)容呈現(xiàn),即時通訊網(wǎng)在收錄時內(nèi)容有稍許調(diào)整,轉(zhuǎn)載時請注明原文來源信息,請尊重原作者的勞動。1、本系列文章目錄《IM開發(fā)者的零基礎(chǔ)通信技術(shù)入門(一):通信交換技術(shù)的百年發(fā)展史(上)》(* 本文)《IM開發(fā)者的零基礎(chǔ)通信...  閱讀全文

          posted @ 2019-03-26 12:08 Jack Jiang 閱讀(146) | 評論 (0)編輯 收藏

               摘要: 本文來自公眾號“玩不好就別玩”原創(chuàng)分享,原文鏈接:mp.weixin.qq.com/s/x5_OfICU2ijsxwMuVpqojg。文章內(nèi)容為個人真實經(jīng)歷,雖平凡無奇,但感同身受。1、點評本文來自公眾號“玩不好就別玩”原創(chuàng)分享。本次文章內(nèi)容為個人真實經(jīng)歷,記錄了作者個人離職鵝廠前最后一個月工作交接過程中的心理變化歷程。內(nèi)容雖平凡無奇,但同為程序員的...  閱讀全文

          posted @ 2019-03-01 18:25 Jack Jiang 閱讀(158) | 評論 (0)編輯 收藏

               摘要: 本文為原創(chuàng)分享,轉(zhuǎn)載請注明出處。1、引言即時通訊IM應(yīng)用中的聊天消息時間顯示是個再常見不過的需求,現(xiàn)在都講究用戶體驗,所以時間顯示再也不能像傳統(tǒng)軟件一樣簡單粗地暴顯示成“年/月/日 時:分:秒”這樣。所以,市面上幾乎所有的IM都會對聊天消息的時間顯示格化做人性化處理,從而提升用戶體驗(使用感受會明顯友好)。這兩天正在繼續(xù)開發(fā)RainbowChat-Web產(chǎn)品,所以正需要這樣...  閱讀全文

          posted @ 2019-02-23 16:54 Jack Jiang 閱讀(299) | 評論 (0)編輯 收藏

               摘要: 本文原文內(nèi)容引用自高可用架構(gòu)公眾號,內(nèi)容有整理和修訂。1、引言大家對下面這個排隊的場景應(yīng)該非常熟悉,這個是小米手機搶購的用戶排隊交互圖,大家看到這些排隊的兔子時,說明也有很多用戶在同一時間向小米搶購系統(tǒng)提交了購買請求。▲ 小米手機搶購排隊中...小米搶購系統(tǒng)后端服務(wù)面臨巨大的壓力,下圖可以反映小米搶購系統(tǒng)面臨的瞬間峰值壓力。這張圖截取自某年米粉節(jié)大秒服務(wù)后端其中一組LB(負載均衡層)的...  閱讀全文

          posted @ 2019-01-24 20:27 Jack Jiang 閱讀(205) | 評論 (0)編輯 收藏

               摘要: 本文來自網(wǎng)易云音樂音視頻實驗室負責(zé)人劉華平在LiveVideoStackCon 2017大會上的分享,并由LiveVideoStack根據(jù)演講內(nèi)容整理而成(本次演講PPT文稿,請從文末附件下載)。1、引言大家好,我是劉華平,從畢業(yè)到現(xiàn)在我一直在從事音視頻領(lǐng)域相關(guān)工作,也有一些自己的創(chuàng)業(yè)項目,曾為早期Google Android SDK多媒體架構(gòu)的構(gòu)建作出貢獻。就音頻而言,無論是算法多樣性,Code...  閱讀全文

          posted @ 2019-01-18 22:02 Jack Jiang 閱讀(211) | 評論 (0)編輯 收藏

               摘要: 本文由愛奇藝技術(shù)團隊原創(chuàng)分享,原題《愛奇藝Android客戶端啟動優(yōu)化與分析》。1、引言互聯(lián)網(wǎng)領(lǐng)域里有個八秒定律,如果網(wǎng)頁打開時間超過8秒,便會有超過70%的用戶放棄等待,對Android APP而言,要求更加嚴(yán)格,如果系統(tǒng)無響應(yīng)時間超過5秒,便會出現(xiàn)ANR,APP可能會被強制關(guān)閉,因此,啟動時間作為一個重要的性能指標(biāo),關(guān)系著用戶的第一體驗。愛奇藝安卓APP非常重視啟動速度的優(yōu)化,本文將從啟動過程...  閱讀全文

          posted @ 2019-01-14 11:53 Jack Jiang 閱讀(133) | 評論 (0)編輯 收藏

               摘要: 1、點評互聯(lián)網(wǎng)發(fā)展至今已經(jīng)高度發(fā)達,而對于互聯(lián)網(wǎng)應(yīng)用(尤其即時通訊技術(shù)這一塊)的開發(fā)者來說,網(wǎng)絡(luò)編程是基礎(chǔ)中的基礎(chǔ),只有更好地理解相關(guān)基礎(chǔ)知識,對于應(yīng)用層的開發(fā)才能做到游刃有余。對于Android程序員來說,如果您覺得本文內(nèi)容稍顯枯燥,可以看看即時通訊網(wǎng)之前整理過的一篇類似文章《邁向高階:優(yōu)秀Android程序員必知必會的網(wǎng)絡(luò)基礎(chǔ)》,該文內(nèi)容更偏向于知識點的概括。如果您希望更系統(tǒng)地學(xué)習(xí)網(wǎng)絡(luò)編程方面...  閱讀全文

          posted @ 2019-01-10 11:15 Jack Jiang 閱讀(166) | 評論 (0)編輯 收藏

          僅列出標(biāo)題
          共51頁: First 上一頁 36 37 38 39 40 41 42 43 44 下一頁 Last 
          Jack Jiang的 Mail: jb2011@163.com, 聯(lián)系QQ: 413980957, 微信: hellojackjiang
          主站蜘蛛池模板: 元氏县| 罗平县| 乐东| 浮山县| 仪征市| 淮北市| 孟连| 琼海市| 柞水县| 武城县| 萨迦县| 临朐县| 江安县| 邵武市| 乌鲁木齐市| 宁陵县| 白银市| 南京市| 湖南省| 广元市| 建瓯市| 静乐县| 天津市| 腾冲县| 柳州市| 扎兰屯市| 锡林郭勒盟| 方山县| 乐至县| 泰和县| 鸡泽县| 万州区| 棋牌| 吉水县| 同仁县| 穆棱市| 乐陵市| 静宁县| 左云县| 富锦市| 镇江市|