日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网易云信深度优化解决移动聊天室“痼疾”

發(fā)布時間:2025/3/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网易云信深度优化解决移动聊天室“痼疾” 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文源于云信移動技術專家項望烽在開源中國源創(chuàng)會2016年終盛典的題為《聊天室場景下的移動網(wǎng)絡優(yōu)化》分享。


(網(wǎng)易云信移動端技術 項望烽)

突破傳統(tǒng)群組思維和架構,實現(xiàn)無人數(shù)上限的聊天室

步入移動互聯(lián)網(wǎng)時代以來,包括IM和聊天室在內(nèi),絕大多數(shù)相關應用的開發(fā),都經(jīng)歷了從直接移植桌面端產(chǎn)品到移動端,到如今直接以移動端產(chǎn)品為主導的轉變。而因為移動網(wǎng)絡環(huán)境本身的復雜性,期間也不斷遇到了各種難題。以目前覆蓋人群最廣的手機直播為代表的移動端聊天室為例,和常見IM應用不同,它從一個點對點的場景變?yōu)榱巳旱膱鼍?#xff0c;建立在群的架構上。如果是在線人數(shù)繁多、單位時間內(nèi)消息量巨大的聊天室場景中,可能僅查詢聊天室成員在線就會讓服務器崩潰。而且還要顧及到本身視頻直播的推位流和觀眾與主播的互動,以及各種復雜數(shù)據(jù)流的傳輸。這也是為什么常見IM聊天室都有人數(shù)上限和離線消息存入限制的原因。而網(wǎng)易云信則突破了傳統(tǒng)群組思維來設計聊天室架構,實現(xiàn)了無上限人數(shù)的聊天室。

網(wǎng)易云信的應對之道及優(yōu)化方向

網(wǎng)易云信會讓無上限人數(shù)的聊天室的用戶都連接到相同的一組服務器上,這樣到消息投遞過來的時候,就不需要進行用戶在線狀態(tài)的查詢,只需要把消息投遞到相應的幾臺或者幾十臺服務器上即可。但這種情況下,對于移動端的要求更高,等于每一個聊天室移動端都要重建一個TCP連接,又要能夠保障每個直播間或者說每個聊天室都能夠秒進。而且因為聊天室人員的流動性,用戶經(jīng)常從一個主播切換到另外一個主播,導致聊天室切換,重連也比較頻繁。那么在這種情況下,移動端怎么做優(yōu)化工作呢?

首先我們可以將一個IM產(chǎn)品或者說一個聊天室場景分為幾個環(huán)節(jié):連接服務、登錄、發(fā)送消息和接收消息。所謂的網(wǎng)絡優(yōu)化也就是針對這幾個環(huán)節(jié)而已,怎么更快的連接服務器,怎么更快更安全的登錄服務器,怎樣保證消息快速抵達和不丟,以及最后一步——怎么優(yōu)雅的接收消息。

?

雙模式綜合應用,確保連接穩(wěn)定快速

首先,從連接維度著手。相比起傳統(tǒng)拿一個域名去鏈接服務器并發(fā)送請求的方式,云信采用HTTP DNS和內(nèi)置IP列表兩種模式綜合應用。一方面,用 IM 應用服務器作為一個功能類似lbs的服務器,通過 IM 的長連接獲取聊天室IP地址,獲取后的服務器地址緩存在本地使用。這樣就能夠保證絕大部分的連接都是用 IP 做直連,而且能夠連接到最適合當前客戶端的服務器。同時,在保活保連方面,精簡心跳包,并減少心跳包的頻率。針對重連情況,做一定的退避機制和啟用淘汰機制。如果重連某臺服務器次數(shù)超過一定的閾值就嘗試下一臺服務器。

?

多維度優(yōu)化,為登錄順暢保駕護航

在登錄方面, 網(wǎng)易云信將加密和登錄請求放在一個環(huán)節(jié)中來完成,不使用公開的協(xié)議,而使用私有協(xié)議,自定義整個加密流程,去除證書下發(fā)和驗證的過程,在保證安全且不容易被破解的前提下,保證能夠最快的完成登錄流程。此外,網(wǎng)易云信還在技術層面對現(xiàn)有協(xié)議進行了一系列的精簡。使用二進制協(xié)議和壓縮,盡量保證登錄請求包足夠小,減少因為分組帶來的丟包率升高,而導致重傳。此外,在登錄后實現(xiàn)增量同步和按需同步,只有在真正需要的時候才進行信息的獲取。

?

精心打磨文件上傳,實現(xiàn)高效穩(wěn)定

在純文本信息和指令的發(fā)送上,網(wǎng)易云信采用了常見的依靠應用層ACK的模式,把更多的精力放到對文件上傳的優(yōu)化方面。移動網(wǎng)絡的低帶寬、高延遲、高丟包率導致了普通的上傳非常容易失敗,大量的TCP分組和簡單的分塊上傳,依然容易出現(xiàn)重傳次數(shù)過多和較高的失敗率。針對這一問題,網(wǎng)易云信根據(jù)網(wǎng)絡類型來預估分塊大小,并進行動態(tài)調(diào)整,同時為了減少RTT的影響采用Pipelining技術,在一個TCP連接上順序發(fā)送多個請求,同時為了提高上傳成功率做一定程度的限速,防止一次發(fā)送的數(shù)據(jù)過載,造成過多的TCP分組。在業(yè)務層面,譬如音頻傳輸,則采取邊錄邊傳的模式來達成高效優(yōu)化。

?

2016年,視頻直播行業(yè)迎來了空前的大爆發(fā),而且移動直播客戶端的用戶訪問量也呈現(xiàn)出井噴的趨勢,圍繞多數(shù)主播的“同房”觀眾往往數(shù)以萬計,大有重現(xiàn)甚至超過當初BBS時代聊天室的盛況。但對于直播平臺或者聊天室的運營者而言,龐大的用戶訪問量引發(fā)的卡頓、宕機、崩潰、消息發(fā)送和接收不暢,以及移動端弱網(wǎng)絡等問題也成為了無法回避的痛點。網(wǎng)易云信憑借自身多年的技術沉淀及大量全方位的精打細磨,推出了“無人數(shù)上限直播聊天室”的解決方案(包括UI組件、P2P 群組、聊天室,而且都是開源),及時為直播行業(yè)的蓬勃發(fā)展掃清了障礙。

網(wǎng)易云信∣真正穩(wěn)定的IM云服務

http://netease.im ?長按識別,關注精彩

總結

以上是生活随笔為你收集整理的网易云信深度优化解决移动聊天室“痼疾”的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。