本人近期研究即時通訊功能,社交元素現在已經滲透到各個領域,無論商城、遊戲、媒體類等app,爲了增加用戶之間的交流,都已經開始加入即時通訊功能,可以說即時通訊在未來的手機商業應用領域是不可或缺的。開博客寫即時通訊系列的文章不是本人首創,很多大牛都有過類似文章,我寫該系列博客的目的:
一是爲了總結自身,積累經驗;
二是因爲以前自己在學習過程中拜讀過許多大神的高論,使自己在學習開發的過程中受益良多,並被他們無私的精神所感染,決定分享自己的一些淺薄見識,於同行交流,共同促進進步;
三是因爲今天是2016年4月9日,現在網上很多資料的內容不是抄襲,就是時間已經久遠,很多開發工具和代碼版本都已經非常老舊,新入行的兄弟拿着新代碼,參考着舊攻略,總會出現各種各樣的問題,另其多走不少彎路。
綜合以上原因,本人決定,在時間允許的情況下,會持續更新該系列文章;每一篇文章中的操作,均爲我的實際成功操作,所有工具、代碼都是2016年4月9日下載,該系列的操作都是以此爲基準,避免同行在交流時因爲版本差異做無謂的爭執;本文爲純手寫,會參考其他文章內容,但絕不惡意抄襲,不作商業用途,僅供分享交流,作者水平有限,只是抱着學習和交流的心態與大家分享,有錯誤是在所難免的,望各路英雄海涵,有錯多多指正。
當前,即時通訊開發主要分爲兩種,一是自定義通訊協議開發,這類產品主要用c++服務器,消息形式基於自定義的結構體,效率高,安全應也高,不開源;另一種是XMPP這一類的開源形式組織產生的網絡即時通信協議,XMPP已經被IETF國際標準組織完成了標準化工作,標準化的核心結果分爲兩部分:核心的XML流傳輸協議和基於XML流傳輸的即時通訊擴展應用。由於資源所限,本系列使用開源的xmpp協議來開發即時通訊功能,主要包括以下內容:
一、即時通訊服務器的搭建
二、移動客戶端即時通訊功能的實現
由於網上已經有很多介紹xmpp的文章,本系列更注重實際實現,以下內容不會着重介紹,如各位有興趣可以自行了解:
一、xmpp的概念
http://my.oschina.net/cuitongliang/blog/194885 (寫得很詳細)
二、xmpp的歷史
以前叫jabber,聽起來好邪惡。。。
三、xmpp工作原理
所有從一個客戶端到另一個客戶端的xmpp消息都要通過xmpp服務器。
即:client--server--client
1.客戶端連接到服務器
2.服務器端利用本地目錄系統的證書對其認證
3.客戶端制定目標地址,讓服務器端告知目標狀態
4.服務器端對另一個客戶端進行查找、連接並相互認證
5.相互認證後,兩個客戶端間即可進行交互
如果再複雜點,要和其他通訊系統交互信息,就需要配置xmpp網關。
四、PC端的實現
有現成的spark,至於進一步的開發嘛,等我有空的。。。