XMPP
XMPP的實(shí)現(xiàn)原理
- XMPP是一個(gè)即時(shí)通訊的協(xié)議涛漂,它規(guī)范了用于即時(shí)通信在網(wǎng)絡(luò)上數(shù)據(jù)傳輸格式的革砸,比如登錄喊废,獲取好友列表等等的格式氮墨。XMPP在網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)是XML格式.比如登錄:把用戶名和密碼放在xml的標(biāo)簽中纺蛆,傳輸?shù)椒?wù)器吐葵。
- XMPP是一個(gè)基于個(gè)Socket通過(guò)的網(wǎng)絡(luò)協(xié)議,目的是為了保存長(zhǎng)連接桥氏,以實(shí)現(xiàn)即時(shí)通訊功能
- XMPP的客戶端是使用一個(gè) XMPPFramework 框架實(shí)現(xiàn)温峭;XMPP的服務(wù)器是使用Openfire,一個(gè)開(kāi)源的服務(wù)器。
客戶端獲取到服務(wù)器發(fā)送過(guò)來(lái)的好友消息字支,客戶端需要對(duì)XML進(jìn)行解析凤藏,使用的解析框架的KissXML框架,而不是NSXMLParser/GDataXML
使用XMPP的時(shí)候遇到的困難
發(fā)送附件(圖片祥款,語(yǔ)音清笨,文檔…)時(shí)比較麻煩
XMPP框架沒(méi)有提供發(fā)送附件的功能,需要自己實(shí)現(xiàn)方法刃跛,把文件上傳到文件服務(wù)器,上傳成功后獲取文件保存路徑苛萎,再把附件的路徑發(fā)送給好友桨昙。
簡(jiǎn)單的說(shuō)下環(huán)信的實(shí)現(xiàn)原理
環(huán)信是一個(gè)即時(shí)通信的服務(wù)提供商
環(huán)信使用的是XMPP協(xié)議,它是再XMPP的基礎(chǔ)上進(jìn)行二次開(kāi)發(fā)腌歉,對(duì)服務(wù)器Openfire和客戶端進(jìn)行功能模型的添加和客戶端SDK的封裝蛙酪,環(huán)信的本質(zhì)還是使用XMPP,基本于Socket的網(wǎng)絡(luò)通信翘盖。
環(huán)信內(nèi)部實(shí)現(xiàn)了數(shù)據(jù)緩存桂塞,會(huì)把聊天記錄添加到數(shù)據(jù)庫(kù),把附件(如音頻文件馍驯,圖片文件)下載到本地阁危,使程序員更多時(shí)間是花到用戶即時(shí)體驗(yàn)上。
環(huán)信內(nèi)部已經(jīng)實(shí)現(xiàn)了視頻汰瘫,音頻狂打,圖片,其它附件發(fā)送功能
環(huán)信使用公司可以節(jié)約時(shí)間成本
不需要公司內(nèi)部搭建服務(wù)器
客戶端的開(kāi)發(fā)混弥,使用環(huán)信SDK比使用 XMPPFramework 更簡(jiǎn)潔方便趴乡。