XMPP是什么
- XMPP:The Extensible Messaging and Presence Protocol(可擴展通訊和表示協(xié)議)
- XMPP是一種基于XMl的即時通訊協(xié)議
- XMPP的官方文檔是RFC 3920
這個文檔定義了登錄,退出,獲取好友,發(fā)送消息等等的XML數(shù)據(jù)源傳輸協(xié)議 - XMPP是一個典型的C/S框架
- 基本的網(wǎng)絡形式是單客戶端通過TCP/IP連接到單服務器,然后在之上傳輸XM流
- XMPP是一種類似于HTTP協(xié)議的一種數(shù)據(jù)傳輸協(xié)議,其過程就如同“解包裝-> 包裝”的過程。只需要理解其接收的類型及返回的類型,便可以很好地利用XMPP來進行數(shù)據(jù)通訊
- XMPP官方網(wǎng)站-http://xmpp.org
XMPP實現(xiàn)即時通訊的準備工作
- 下載Openfire服務器
- 下載XMPPFramework框架
是否使用過XMPP,XMPP的實現(xiàn)原理
- XMPP是一個即時通訊協(xié)議,它定義好用于即時通信在網(wǎng)絡上數(shù)據(jù)傳輸格式的,比如登錄,獲取好友列表等等的格式。XMPP在網(wǎng)絡傳輸?shù)臄?shù)據(jù)是XML格式
- 比如登錄:把用戶名和密碼放在xml的標簽中,傳輸?shù)椒掌?/li>
- XMPP是一個基于Socket通過的網(wǎng)絡協(xié)議,目的是為了保存長連接,以實現(xiàn)即時通訊功能
- XMPP的客戶端是使用一個XMPPFramework的框架
- XMPP的服務器是使用Openfire,一個開源的服務器
- 假設客戶端獲取到服務發(fā)送過來的還有消息,客戶端需要對XML進行解析,使用的解析框架的KissXML框架
在使用XMPP的時候有沒有遇到什么苦難
- 發(fā)送附件(圖片,語音,文檔...)時比較麻煩
- XMPP框架沒有提供附件傳送的功能,需要自己實現(xiàn)
- 實現(xiàn)方法,把文件上傳到文件服務器,上傳成功后獲取文件保存路徑,在把附件的路徑發(fā)送給好友
是否使用過換新,簡單的說下環(huán)信的實現(xiàn)原理
- 環(huán)信一個即時通信的服務提供商
- 環(huán)信使用的是XMPP的一些,它是在XMPP的基礎上進行二次開發(fā),對服務器Openfire和客戶端進行功能模型的添加和客戶端SDK的封裝,環(huán)信的本質(zhì)還是使用XMPP,基于Socket的網(wǎng)絡通信
- 環(huán)信內(nèi)部實現(xiàn)了數(shù)據(jù)緩存,會把聊天記錄添加到數(shù)據(jù)庫,把附件下載到本地,程序員更多時間花到界面用戶體驗上
- 環(huán)信內(nèi)部已經(jīng)實現(xiàn)了視頻,音頻,圖片,其他附件發(fā)送功能。
- 環(huán)信使用公司可以節(jié)約時間成本
- 不需要公司內(nèi)部搭建服務器
- 客戶端的開發(fā),使用環(huán)信SDK比使用XMPPFramework更簡潔方便