默認
打賞 發表評論 152
新手入門一篇就夠:從零開發移動端IM
閱讀(302899) | 評論(152 收藏174 淘帖1 31

一、前言


IM發展至今,已是非常重要的互聯網應用形態之一,尤其移動互聯網時代,它正以無與論比的優勢降低了溝通成本和交流門檻,對各種應用形態產生了深遠影響。

做為IM開發者或即將成為IM開發者的技術人員,IM的價值和重要性不言自明。但從技術實現來說,IM系統的開發(尤其是移動端IM)還是存在許多技術難點和坑點的。也正因如此,優質的IM開發資料、實踐成果,對于沒有太多技術儲備的新手來說,尤其難以獲得。

本文將以新手的視角引導你閱讀相關文章,便于你從零開發一個移動端IM做好方方面面的知識準備:包括但不限于網絡編程基礎、通信協議的選型、IM的架構設計等等。文筆有限,如有不妥之處還請批評指正,希望對你有用。

二、讀完本文的收獲


1您將獲得


本文將假設你是毫無技術準備的新手,引導你通過一篇篇精選的文章,了解如何從零開發一個移動端IM所需要的各種技術、資料和實踐性代碼。

2您無法獲得


鑒于IM技術的復雜性,IM開發相關的技術不是一篇文章所能展現的完整,限于篇幅原因本文將不包含任何實踐性代碼、也盡量不對某項技術作深入的展開,相關的實踐性代碼、資料、技術詳解等請依據本文作者準備的文章逐個深入閱讀和學習,而這也恰恰是本文想達到的目的。

三、題外話


隨著近兩年IM云服務的發展,很多團隊基于種種原因,直接選擇了短平快的云IM接入APP中。然而,考慮到云IM無論從商業模式還是運營模式上,還需經過多年的沉淀,才可能真正實現客戶與服務商的運營和服務良性循環的雙贏局面。因則,如何選擇云IM服務商,這就是個頭疼的問題了,不過這不是本文將要討論的重點,如果需要,你也可以加入本文提到的討論交流群,與大家一起交流群: 215891622

好了,以下是正文內容。

四、網絡編程理論準備


即時通訊技術歸根結底還是網絡編程技術的應用,如果您很好奇承載這些網絡協議的物理設備是怎么工作的,可以先看看《網絡編程懶人入門(六):史上最通俗的集線器、交換機、路由器功能原理入門》。

1UDP、TCP理論基礎


我們都知道,IM系統的業務本質就是客戶端與客戶端進行消息的實時傳遞,而技術基礎就是基于Socket連接的實時數據讀寫,那么基本的網絡編程理論基礎是作為新手的你必須掌握的知識點。當然,作為IM開發來說,基礎的網絡理論就夠用了,也沒有必要像網絡工程師一樣精通所謂的OSI七層參考模型。

如果你還不知道什么是UDP、TCP協議,請閱讀以下文章:


這幾篇文章有助于對UDP、TCP協議建立基本的認識,當然如果時間允許,能全書閱讀網絡編程理論經典《TCP/IP詳解 卷1:協議》則再好不過了。另外,UDP、TCP作為基礎計算機數據傳輸協議,在其之上衍生了很多應用層協議,相關的協議族關系圖可以在此文中找到:《計算機網絡通訊協議關系圖(中文珍藏版)》,可作為您日常的備查手冊使用。

2深入理解TCP傳輸協議


透徹理解TCP傳輸協議的連接和斷開過程非常有助于您日后IM算法的優化和實現,這個過程被形象的總結為“3次握手與4次揮手”。

以下文章有助于您深入理解之:


3深入理解UDP傳輸協議


相比TCP協議,UDP數據傳輸協議就顯得非常輕量和易于理解,UDP通常被用于需要快速響應的數據傳輸場景下,對應于IM中的應用形態有:P2P通信、實時音視頻等。另外,通常的IM都會被應用于互聯網上(而非局域網),那么了解所謂的NAT路由技術原理等,也將有助于您對P2P打洞、UDP端口老化等概念有一個清楚的認知。

以下文章有助于您在接下來開發IM的實際應用中提供一定的實踐依據:


4深入理解基于廣域網的互聯網編程知識


未來您所編寫的網絡應用程序或產品基本都要運行基于廣域網的互聯網中(而非單純而簡單的局域網),而廣域網因物理網絡的復雜性,要編寫能適應各種網絡拓撲的程序代碼,需要過硬的廣域網絡基礎知識,比如NAT路由轉發、P2P打洞等等。

下面的文章,有助于您深入理解NAT原理、點對點通信等方面的知識:

P2P技術詳解(一):NAT詳解——詳細原理、P2P簡介
P2P技術詳解(二):P2P中的NAT穿越(打洞)方案詳解
P2P技術詳解(三):P2P技術之STUN、TURN、ICE詳解

5有關高性能網絡編程的知識


實際上,大用戶量高并發生產環境下的網絡編程,你所開發的產品要想真正堪用并非易事,你很有必要了解高性能網絡編程領域所關注的熱點問題和努力的方向。

以下是即時通訊網整理的高性能網絡編程領域的系列文章:

高性能網絡編程(一):單臺服務器并發TCP連接數到底可以有多少
高性能網絡編程(二):上一個10年,著名的C10K并發連接問題
高性能網絡編程(三):下一個10年,是時候考慮C10M并發問題了

好消息是,現時的網絡編程為了解決高性能問題,有很多成型的Socket應用層模式存在,比如:NIO、AIO等,文章《Java新一代網絡編程模型AIO原理及Linux系統AIO介紹》簡單介紹了傳統的阻塞式IO、NIO,并著重介紹了最新的AIO技術,如有時間您很有必要予以了解。(更多同類文章:點此進入…

6深入理解移動互聯網絡的特性


移動互聯網絡因為無線通信的復雜性:慢、高延遲、易受干擾、帶寬窄等特點,使得與傳統的有線網絡下的應用功能實現有明顯差異,您很有必要詳細了解一下無線網絡方面的特性。

以下文章有助于加深您對移動網絡特性的理解:
移動端IM開發者必讀(一):通俗易懂,理解移動網絡的“弱”和“慢”
移動端IM開發者必讀(二):史上最全移動弱網絡優化方法總結
現代移動端網絡短連接的優化手段總結:請求速度、弱網適應、安全保障

7深入學習通信技術物理層(高階知識,選讀!)


如果學完上述各小節里推薦的網絡通信應用層知識,還覺得意猶未盡,那么你肯定是萬中無一的人才了——是時候開始《IM開發者的零基礎通信技術入門》這個高階知識系列的學習了。

以下文章為IM/推送技術開發的邊界知識,有助于你從物理層理解各種網絡問題:

IM開發者的零基礎通信技術入門(一):通信交換技術的百年發展史(上)
IM開發者的零基礎通信技術入門(二):通信交換技術的百年發展史(下)
IM開發者的零基礎通信技術入門(三):國人通信方式的百年變遷
IM開發者的零基礎通信技術入門(四):手機的演進,史上最全移動終端發展史
IM開發者的零基礎通信技術入門(五):1G到5G,30年移動通信技術演進史
IM開發者的零基礎通信技術入門(六):移動終端的接頭人——“基站”技術
IM開發者的零基礎通信技術入門(七):移動終端的千里馬——“電磁波”
IM開發者的零基礎通信技術入門(八):零基礎,史上最強“天線”原理掃盲
IM開發者的零基礎通信技術入門(九):無線通信網絡的中樞——“核心網”
IM開發者的零基礎通信技術入門(十):零基礎,史上最強5G技術掃盲
IM開發者的零基礎通信技術入門(十一):為什么WiFi信號差?一文即懂!
IM開發者的零基礎通信技術入門(十二):上網卡頓?網絡掉線?一文即懂!
IM開發者的零基礎通信技術入門(十三):為什么手機信號差?一文即懂!
IM開發者的零基礎通信技術入門(十四):高鐵上無線上網有多難?一文即懂!
IM開發者的零基礎通信技術入門(十五):理解定位技術,一篇就夠

五、網絡編程基礎實踐


如果你認真讀完了上一層的文章,是時候寫些代碼,來理論聯系實際理解Socket通信的原理和實踐了。

有關TCP的Socket通信Demo文章和代碼:


當然,以上只是隨手找的Demo代碼,網絡上有關TCP數據通信的演示性代碼很容易找到,在此就不過多舉例了。

本文作者專門編寫的有關跨移動端平臺的UDP Socket通信Demo:


六、IM到底該用UDP還是TCP協議?


好了,上面的網絡編程基礎掌握后,就要開始為你的IM進行傳輸協議選型了。說到IM該用UDP還是TCP作為傳輸協議,這是個頗有爭議的話題,各大社區每當此問題的出現必定是大片的不同聲音。

當然,UDP和TCP各有各的應用場景,作為IM來說,早期的IM因為服務端資源(服務器硬件、網絡帶寬等)比較昂貴且沒有更好的辦法來分擔性能負載,所以很多時候會考慮使用UDP,這其中主要是早期的QQ為代表。

時至今日,TCP的服務端負載已經有了很好的解決方案,加之服務器資源成本的下降,目前很多IM、消息推送解決方案也都在使用TCP作為傳輸層協議。不過,UDP也并未排除在IM、消息推送的解決方案之外,比如:弱網絡通信(包括跨國的高延遲網絡環境)、物聯網通信、IM中的實時音視頻通信等等場景下,UDP依然是首選項。

以下文章或許有助于您對傳輸層協議的選型:


當然,關于IM到底該選擇UDP還是TCP,這是個仁者見仁智者見智的問題,沒有必要過于糾結,請從您的IM整體應用場景、開發代價、部署和運營成本等方面綜合考慮,相信能找到你要的答案。

七、IM的數據通信格式選型


IM應用開發的前期技術選型時,關于數據通信格式的選擇,在同行的眼里,同樣是個極富爭議的話題。

精略分析一下,究其原因,大概在于以下幾點:

  • 可選擇的協議或封裝格式多種多樣:
    可選擇的余地大:XMPP、Protobuf、JSON、私有2進制、MQTT、定格化XML、Plain text等等;
  • 同一種格式并不能適用于大多數的場景:
    不同的場景有同的考慮而協議的選擇往往跟這掛鉤在一起的,如:移動端IM或移動端消息推送的應用場景下如果用XMPP協議,多數情況下都會被噴;
  • 開發者對所選格式有各自的偏好:
    有的人或團隊對某種或某幾種格式有不一樣的經驗和技術積累,也促成了他們對某種或某幾種協議的偏好。

該選什么樣的數據通信格式,同樣是跟你的應用場景和使用的架構方案相關聯。不過,目前以作者掌握的信息看來,作為需要運行在移動設備的IM,幾乎目前所有主流討論里都不建議使用XMPP協議,具體原因就不在此展開了,下面推薦的文章里會詳細為你解答原因。

以下文章會對你的IM的數據通信格式選型有所幫助:


(更多同類文章:點此查看…

八、移動端IM的心跳保活和后臺消息推送


1為什么需要心跳保活?


由于移動網絡的復雜性,心跳保活對于移動端IM來說顯的尤為重要,加之手機省電、省流量策略的設計,如何實現心跳保活則也非常重要,文章《基于TCP協議的移動端IM仍然需要心跳保活機制》或許可以解答你的疑問。

2iOS端的后臺消息推送


因為iOS平臺的特殊性,iOS應用一旦退到后臺,應用本身是無法用代碼來實現網絡保活的,也就無法自行實現后臺消息推送了。

以下文章將有助于你理解iOS平臺的后臺消息推送原理:


3Android端的心跳保活和后臺消息推送


鑒于Android平臺眾所周之的分化和互不兼容問題,Android端IM在處理心跳保活和后臺消息推送時,遇到了不少的麻煩。而且,由于Android應用的生命周期管理是由系統控制,因而如何保證您的IM所在進程或后臺服務不被系統殺死,是實現心跳保活和后臺消息推送的實現基礎。

以下文章可為你的Android端IM的心跳保活和后臺推送方案的設計提供參考:


(更多同類文章:此進入…

九、移動端IM系統的架構設計


IM其本質是一套消息發送與投遞系統,或者說是一套網絡通信系統,歸根結底就是兩個詞:存儲與轉發。但一個成熟的移動端IM系統要想正常運轉,涉及的內容則遠不止這些,而最考驗技術功底的就是服務端架構的設計與實現。

沒有過IM系統開發經驗的人,可能對以上觀點嗤之以鼻,在此借用TeamTalk的設計者的一段話:“IM服務器開發,從功能抽象的角度看可能非常簡單,可以認為是管理大量的客戶端連接和在不同的客戶端之間傳遞消息,但具體到實現細節就比較復雜了。打個不恰當的比喻,OS的功能抽象也非常簡單,無非是進程間的調度和硬件資源的管理,但要是自己去實現一個,一般人也就只能呵呵了。”

我們以一個典型方案為例,首先來提煉一下一個IM系統的主要需求:包括賬號、關系鏈、在線狀態顯示、消息交互(文本、圖片、語音)、實時視頻電話......。

要處理好上述需求,我們通常需要從以下方面進行考量從而設計出合適的架構:

  • 如果采用可靠傳輸協議TCP,需要考慮到負載問題:短連接實現賬號、關系鏈相關業務,長連接實現上線、信息推送;
  • 后臺架構的靈活性、可擴展性:支持分布式部署——把網絡層、業務邏輯層、數據層分離,網絡層和業務層支持負載均衡策略、數據層支持分布式存儲;
  • 客戶端SDK的易用性:把網絡層、數據層分離、業務邏輯層分離。

另外,一個典型的IM系統架構設計,還有以下性能方面的熱點問題需要設計者重點關注:

  • 編碼角度:采用高效的網絡模型,線程模型,I/O處理模型,合理的數據庫設計和操作語句的優化;
  • 垂直擴展:通過提高單服務器的硬件資源或者網絡資源來提高性能;
  • 水平擴展:通過合理的架構設計和運維方面的負載均衡策略將負載分擔,有效提高性能;后期甚至可以考慮加入數據緩存層,突破IO瓶頸;
  • 系統的高可用性:防止單點故障;
  • 在架構設計時做到業務處理和數據的分離,從而依賴分布式的部署使得在單點故障時能保證系統可用。
  • 對于關鍵獨立節點可以采用雙機熱備技術進行切換。
  • 數據庫數據的安全性可以通過磁盤陣列的冗余配置和主備數據庫來解決。

鑒于篇幅有限,架構設計方面的內容本文就不深入展開了。

以下文章將為你的移動端IM的架構設計帶來一定的參考意義:


(更多同類文章: 點此進入…

十、移動端IM的通信安全


IM(尤其移動端IM)的安全性一直是開發者需要優先考慮的基礎問題,如何正確地理解和使用加密技術則顯的尤其重要。IM系統大都采用C/S、B/S、P2P等技術來實現即時通信的功能,軟件編制沒有統一的標準,使得IM系統本身存有多種安全漏洞,加上用戶缺乏安全意識,導致在使用即時通信系統時出現各種安全問題。

當今的計算機密碼學的主要作用有:加密( Encryption)、認證(Authentication),鑒定(Identification) 。

加密:防止壞人獲取你的數據。
認證:防止壞人修改了你的數據而你卻并沒有發現。
鑒權:防止壞人假冒你的身份。

這些基本概念和加密算法原理就不在此展開敘述了。

以下文章或許有助于您設計出安全的移動端IM系統:


(更多同類文章:點此進入…

十一、有關IM中的實時音視頻技術


IM應用中的實時音視頻技術,幾乎是IM開發中的最后一道高墻。原因在于:實時音視頻技術 = 音視頻處理技術 + 網絡傳輸技術 的橫向技術應用集合體,而公共互聯網不是為了實時通信設計的。實時音視頻技術上的實現內容主要包括:音視頻的采集、編碼、網絡傳輸、解碼、播放等環節。這么多項并不簡單的技術應用,如果把握不當,將會在在實際開發過程中遇到一個又一個的坑。

以下文章有助于您從零理解IM的實時音視頻開發的方方面面:


(更多同類文章: 點此進入…

另外,大家都喜歡開源免費的東西,WebRTC是為數不多的開源且質量上乘的實時音視頻解決方案之一,資料如下:


十二、移動端IM開發的其它熱點問題


移動端IM開發中還會遇到上述內容未提及的內容,以下文章或許您用的上:
移動端IM開發需要面對的技術問題
開發IM是自己設計協議用字節流好還是字符流好?
請問有人知道語音留言聊天的主流實現方式嗎?
IM消息送達保證機制實現(一):保證在線實時消息的可靠投遞
IM消息送達保證機制實現(二):保證離線消息的可靠投遞
如何保證IM實時消息的“時序性”與“一致性”?
IM單聊和群聊中的在線狀態同步應該用“推”還是“拉”?
IM群聊消息如此復雜,如何保證不丟不重?
談談移動端 IM 開發中登錄請求的優化
IM群聊消息如此復雜,如何保證不丟不重?
IM開發基礎知識補課(一):正確理解前置HTTP SSO單點登陸接口的原理
IM開發基礎知識補課(二):如何設計大量圖片文件的服務端存儲架構?
一種Android端IM智能心跳算法的設計與實現探討(含樣例代碼)
移動端IM登錄時拉取數據如何作到省流量?
通俗易懂:基于集群的移動端IM接入層負載均衡方案分享
完全自已開發的IM該如何設計“失敗重試”機制?
微信對網絡影響的技術試驗及分析(論文全文)
即時通訊系統的原理、技術和應用(技術論文)
開源IM工程“蘑菇街TeamTalk”的現狀:一場有始無終的開源秀
從客戶端的角度來談談移動端IM的消息可靠性和送達機制
現代移動端網絡短連接的優化手段總結:請求速度、弱網適應、安全保障
移動端IM開發者必讀(一):通俗易懂,理解移動網絡的“弱”和“慢”
移動端IM開發者必讀(二):史上最全移動弱網絡優化方法總結
>> 更多同類文章 ……

十三、參考技術方案


1MobileIMSDK工程(已開源)↘


新手入門一篇就夠:從零開發移動端IM_a.png
MobileIMSDK首版開發于2013年(截止2018年2月已更新至v3.2版),它主要使用原生代碼編寫,應用于非Web網頁方式的移動端即時通訊場景下,詳細介紹請見:http://www.uktmgv.tw/thread-52-1-1.html

2MobileIMSDK-Web工程(捐助作者得精編源碼)↘


新手入門一篇就夠:從零開發移動端IM_b.png
MobileIMSDK-Web首版開發于2016年(仍在持續升級中),完全使用JavaScript編寫,主要應用于Web網頁方式的即時通訊場景下(包括但不限于手機端、PC端的網頁聊天或消息推送等),詳細介紹請見:http://www.uktmgv.tw/thread-959-1-1.html

3RainbowAV工程(捐助作者得精編源碼)↘


新手入門一篇就夠:從零開發移動端IM_222.png
RainbowAV是一套完整移動端實時音視頻框架(含服務端),支持分布式,不依賴于第3方服務,可私有化部署,使用方便,部署簡單,輕量級、模塊化設計,開發者可方便修改、演進甚至用于2次開發,詳細介紹請見:http://www.uktmgv.tw/thread-1027-1-1.html

4RainbowChat產品級IM系統 ↘


新手入門一篇就夠:從零開發移動端IM_111.png
RainbowChat是一套基于MobileIMSDK的產品級移動端IM系統。RainbowChat源于真實運營的產品,運營統計:點此進入,不同于市面上開源或售賣的demo級代碼,RainbowChat的產品前身已被成千上萬真實的客戶使用過,解決了大量的屏幕適配、細節優化、機器兼容問題(可自行下載體驗:標準版下載專業版下載),詳細介紹請見:http://www.uktmgv.tw/thread-19-1-1.html

附錄1:其它即時通訊文章


[1] 有關WEB端即時通訊開發:
新手入門貼:史上最全Web端即時通訊技術原理詳解
Web端即時通訊技術盤點:短輪詢、Comet、Websocket、SSE
SSE技術詳解:一種全新的HTML5服務器推送事件技術
Comet技術詳解:基于HTTP長連接的Web端實時通信技術
新手快速入門:WebSocket簡明教程
WebSocket詳解(一):初步認識WebSocket技術
WebSocket詳解(二):技術原理、代碼演示和應用案例
WebSocket詳解(三):深入WebSocket通信協議細節
WebSocket詳解(四):刨根問底HTTP與WebSocket的關系(上篇)
WebSocket詳解(五):刨根問底HTTP與WebSocket的關系(下篇)
WebSocket詳解(六):刨根問底WebSocket與Socket的關系
socket.io實現消息推送的一點實踐及思路
LinkedIn的Web端即時通訊實踐:實現單機幾十萬條長連接
Web端即時通訊技術的發展與WebSocket、Socket.io的技術實踐
Web端即時通訊安全:跨站點WebSocket劫持漏洞詳解(含示例代碼)
開源框架Pomelo實踐:搭建Web端高性能分布式IM聊天服務器
使用WebSocket和SSE技術實現Web端消息推送
詳解Web端通信方式的演進:從Ajax、JSONP 到 SSE、Websocket
MobileIMSDK-Web的網絡層框架為何使用的是Socket.io而不是Netty?
理論聯系實際:從零理解WebSocket的通信原理、協議格式、安全性
微信小程序中如何使用WebSocket實現長連接(含完整源碼)
>> 更多同類文章 ……

[2] 有關推送技術的文章:
iOS的推送服務APNs詳解:設計思路、技術原理及缺陷等
信鴿團隊原創:一起走過 iOS10 上消息推送(APNS)的坑
Android端消息推送總結:實現原理、心跳保活、遇到的問題等
掃盲貼:認識MQTT通信協議
一個基于MQTT通信協議的完整Android推送Demo
IBM技術經理訪談:MQTT協議的制定歷程、發展現狀等
求教android消息推送:GCM、XMPP、MQTT三種方案的優劣
移動端實時消息推送技術淺析
掃盲貼:淺談iOS和Android后臺實時消息推送的原理和區別
絕對干貨:基于Netty實現海量接入的推送服務技術要點
移動端IM實踐:谷歌消息推送服務(GCM)研究(來自微信)
為何微信、QQ這樣的IM工具不使用GCM服務推送消息?
極光推送系統大規模高并發架構的技術實踐分享
從HTTP到MQTT:一個基于位置服務的APP數據通信實踐概述
魅族2500萬長連接的實時消息推送架構的技術實踐分享
專訪魅族架構師:海量長連接的實時消息推送系統的心得體會
深入的聊聊Android消息推送這件小事
基于WebSocket實現Hybrid移動應用的消息推送實踐(含代碼示例)
一個基于長連接的安全可擴展的訂閱/推送服務實現思路
實踐分享:如何構建一套高可用的移動端消息推送系統?
Go語言構建千萬級在線的高并發消息推送系統實踐(來自360公司)
騰訊信鴿技術分享:百億級實時消息推送的實戰經驗
百萬在線的美拍直播彈幕系統的實時推送技術實踐之路
京東京麥商家開放平臺的消息推送架構演進之路
了解iOS消息推送一文就夠:史上最全iOS Push技術詳解
>> 更多同類文章 ……

[3] 更多即時通訊技術好文分類:
http://www.uktmgv.tw/forum.php?mod=collection&op=all

附錄2:來自IM大廠的精華文章匯總


[1] 有關QQ、微信的技術文章:
微信朋友圈千億訪問量背后的技術挑戰和實踐總結
騰訊技術分享:騰訊是如何大幅降低帶寬和網絡流量的(圖片壓縮篇)
騰訊技術分享:騰訊是如何大幅降低帶寬和網絡流量的(音視頻技術篇)
微信團隊分享:微信移動端的全文檢索多音字問題解決方案
騰訊技術分享:Android版手機QQ的緩存監控與優化實踐
微信團隊分享:iOS版微信的高性能通用key-value組件技術實踐
微信團隊分享:iOS版微信是如何防止特殊字符導致的炸群、APP崩潰的?
騰訊技術分享:Android手Q的線程死鎖監控系統技術實踐
微信團隊原創分享:iOS版微信的內存監控系統技術實踐
讓互聯網更快:新一代QUIC協議在騰訊的技術實踐分享
iOS后臺喚醒實戰:微信收款到賬語音提醒技術總結
騰訊技術分享:社交網絡圖片的帶寬壓縮技術演進之路
微信團隊分享:視頻圖像的超分辨率技術原理和應用場景
微信團隊分享:微信每日億次實時音視頻聊天背后的技術解密
QQ音樂團隊分享:Android中的圖片壓縮技術詳解(上篇)
QQ音樂團隊分享:Android中的圖片壓縮技術詳解(下篇)
騰訊團隊分享:手機QQ中的人臉識別酷炫動畫效果實現詳解
騰訊團隊分享 :一次手Q聊天界面中圖片顯示bug的追蹤過程分享
微信團隊分享:微信Android版小視頻編碼填過的那些坑
微信手機端的本地數據全文檢索優化之路
企業微信客戶端中組織架構數據的同步更新方案優化實戰
微信團隊披露:微信界面卡死超級bug“15。。。。”的來龍去脈
QQ 18年:解密8億月活的QQ后臺服務接口隔離技術
月活8.89億的超級IM微信是如何進行Android端兼容測試的
以手機QQ為例探討移動端IM中的“輕應用”
一篇文章get微信開源移動端數據庫組件WCDB的一切!
微信客戶端團隊負責人技術訪談:如何著手客戶端性能監控和優化
微信后臺基于時間序的海量數據冷熱分級架構設計實踐
微信團隊原創分享:Android版微信的臃腫之困與模塊化實踐之路
微信后臺團隊:微信后臺異步消息隊列的優化升級實踐分享
微信團隊原創分享:微信客戶端SQLite數據庫損壞修復實踐
騰訊原創分享(一):如何大幅提升移動網絡下手機QQ的圖片傳輸速度和成功率
騰訊原創分享(二):如何大幅壓縮移動網絡下APP的流量消耗(下篇)
騰訊原創分享(三):如何大幅壓縮移動網絡下APP的流量消耗(上篇)
微信Mars:微信內部正在使用的網絡層封裝庫,即將開源
如約而至:微信自用的移動端IM網絡層跨平臺組件庫Mars已正式開源
開源libco庫:單機千萬連接、支撐微信8億用戶的后臺框架基石 [源碼下載]
微信新一代通信安全解決方案:基于TLS1.3的MMTLS詳解
微信團隊原創分享:Android版微信后臺保活實戰分享(進程保活篇)
微信團隊原創分享:Android版微信后臺保活實戰分享(網絡保活篇)
Android版微信從300KB到30MB的技術演進(PPT講稿) [附件下載]
微信團隊原創分享:Android版微信從300KB到30MB的技術演進
微信技術總監談架構:微信之道——大道至簡(演講全文)
微信技術總監談架構:微信之道——大道至簡(PPT講稿) [附件下載]
如何解讀《微信技術總監談架構:微信之道——大道至簡》
微信海量用戶背后的后臺系統存儲架構(視頻+PPT) [附件下載]
微信異步化改造實踐:8億月活、單機千萬連接背后的后臺解決方案
微信朋友圈海量技術之道PPT [附件下載]
微信對網絡影響的技術試驗及分析(論文全文)
一份微信后臺技術架構的總結性筆記
架構之道:3個程序員成就微信朋友圈日均10億發布量[有視頻]
快速裂變:見證微信強大后臺架構從0到1的演進歷程(一)
快速裂變:見證微信強大后臺架構從0到1的演進歷程(二)
微信團隊原創分享:Android內存泄漏監控和優化技巧總結
全面總結iOS版微信升級iOS9遇到的各種“坑”
微信團隊原創資源混淆工具:讓你的APK立減1M
微信團隊原創Android資源混淆工具:AndResGuard [有源碼]
Android版微信安裝包“減肥”實戰記錄
iOS版微信安裝包“減肥”實戰記錄
移動端IM實踐:iOS版微信界面卡頓監測方案
微信“紅包照片”背后的技術難題
移動端IM實踐:iOS版微信小視頻功能技術方案實錄
移動端IM實踐:Android版微信如何大幅提升交互性能(一)
移動端IM實踐:Android版微信如何大幅提升交互性能(二)
移動端IM實踐:實現Android版微信的智能心跳機制
移動端IM實踐:WhatsApp、Line、微信的心跳策略分析
移動端IM實踐:谷歌消息推送服務(GCM)研究(來自微信)
移動端IM實踐:iOS版微信的多設備字體適配方案探討
信鴿團隊原創:一起走過 iOS10 上消息推送(APNS)的坑
騰訊信鴿技術分享:百億級實時消息推送的實戰經驗
IPv6技術詳解:基本概念、應用現狀、技術實踐(上篇)
IPv6技術詳解:基本概念、應用現狀、技術實踐(下篇)
騰訊TEG團隊原創:基于MySQL的分布式數據庫TDSQL十年鍛造經驗分享
微信多媒體團隊訪談:音視頻開發的學習、微信的音視頻技術和挑戰等
了解iOS消息推送一文就夠:史上最全iOS Push技術詳解
騰訊技術分享:微信小程序音視頻技術背后的故事
騰訊資深架構師干貨總結:一文讀懂大型分布式系統設計的方方面面
>> 更多同類文章 ……

[2] 有關QQ、微信的技術故事:
技術往事:微信估值已超5千億,雷軍曾有機會收編張小龍及其Foxmail
QQ和微信兇猛成長的背后:騰訊網絡基礎架構的這些年
閑話即時通訊:騰訊的成長史本質就是一部QQ成長史
2017微信數據報告:日活躍用戶達9億、日發消息380億條
騰訊開發微信花了多少錢?技術難度真這么大?難在哪?
技術往事:創業初期的騰訊——16年前的冬天,誰動了馬化騰的代碼
技術往事:史上最全QQ圖標變遷過程,追尋IM巨人的演進歷史
技術往事:“QQ群”和“微信紅包”是怎么來的?
開發往事:深度講述2010到2015,微信一路風雨的背后
開發往事:微信千年不變的那張閃屏圖片的由來
開發往事:記錄微信3.0版背后的故事(距微信1.0發布9個月時)
一個微信實習生自述:我眼中的微信開發團隊
首次揭秘:QQ實時視頻聊天背后的神秘組織
為什么說即時通訊社交APP創業就是一個坑?
微信七年回顧:歷經多少質疑和差評,才配擁有今天的強大
前創始團隊成員分享:盤點微信的前世今生——微信成功的必然和偶然
即時通訊創業必讀:解密微信的產品定位、創新思維、設計法則等
>> 更多同類文章 ……

即時通訊網 - 即時通訊開發者社區! 來源: - 即時通訊開發者社區!

評分

2

查看評分

上一篇:Android進程保活詳解:一篇文章解決你的所有疑問下一篇:58同城網的IM技術架構演變之路

本帖已收錄至以下技術專輯

推薦方案
評論 152
好全的資料啊
簽名: 該會員沒有填寫今日想說內容.
引用:kezhaoyuan 發表于 2016-08-03 09:17
好全的資料啊

是啊,這樣的資料可是不容易找到的
簽名: 《對比主流分布式MQ消息隊列,媽媽再也不擔心我的技術選型了》http://www.uktmgv.tw/thread-2625-1-1.html
滿滿的干貨
引用:qianxing 發表于 2016-08-03 13:28
滿滿的干貨

那必須的
簽名: 《對比主流分布式MQ消息隊列,媽媽再也不擔心我的技術選型了》http://www.uktmgv.tw/thread-2625-1-1.html
從這篇文章開始學習im
簽名: 該會員沒有填寫今日想說內容.
引用:木子鳳 發表于 2016-08-05 08:18
從這篇文章開始學習im

簽名: 《對比主流分布式MQ消息隊列,媽媽再也不擔心我的技術選型了》http://www.uktmgv.tw/thread-2625-1-1.html
666666
簽名: java
干貨啊,尤其是IOS的保活確實讓人頭疼
干貨,最近產品正要添加IM功能,有學習資料了
引用:qingwanan 發表于 2016-08-21 15:05
干貨,最近產品正要添加IM功能,有學習資料了

簽名: 《對比主流分布式MQ消息隊列,媽媽再也不擔心我的技術選型了》http://www.uktmgv.tw/thread-2625-1-1.html
太感謝了這么豐富的資料,十分感謝
簽名: asdf
引用:otnp 發表于 2016-08-23 14:20
太感謝了這么豐富的資料,十分感謝

希望對你有用 !
簽名: 《對比主流分布式MQ消息隊列,媽媽再也不擔心我的技術選型了》http://www.uktmgv.tw/thread-2625-1-1.html
篇篇都是經典啊
引用:yijunsign 發表于 2016-08-23 20:16
篇篇都是經典啊

過獎
簽名: 《對比主流分布式MQ消息隊列,媽媽再也不擔心我的技術選型了》http://www.uktmgv.tw/thread-2625-1-1.html
總結得十分詳細,十分感謝!樓主創建的這個網站太棒了!
好東西,想學習
十分感謝~~~
寫的,太好了。
簽名: 遇見
頂一個
打賞樓主 ×
使用微信打賞! 使用支付寶打賞!

返回頂部
曾氏料二肖中特