XMPP是什麼
- XMPP:The Extensible Messaging and Presence Protocol(可擴展通信和表示協議)
- XMPP是一種基於XMl的即時通信協議
- XMPP的官方文檔是RFC 3920 這個文檔定義了登陸,退出,獲取好友,發送消息等等的XML數據源傳輸協議
- XMPP是一個典型的C/S框架* 基本的網絡形式是單客戶端經過TCP/IP鏈接到單服務器,而後在之上傳輸XM流
- XMPP是一種相似於HTTP協議的一種數據傳輸協議,其過程就如同「解包裝-> 包裝」的過程。只須要理解其接收的類型及返回的類型,即可以很好地利用XMPP來進行數據通信
- XMPP官方網站-http://xmpp.org
XMPP實現即時通信的準備工做
- 下載Openfire服務器
- 下載XMPPFramework框架
是否使用過XMPP,XMPP的實現原理
- XMPP是一個即時通信協議,它定義好用於即時通訊在網絡上數據傳輸格式的,好比登陸,獲取好友列表等等的格式。XMPP在網絡傳輸的數據是XML格式
- 好比登陸:把用戶名和密碼放在xml的標籤中,傳輸到服務器
- XMPP是一個基於Socket經過的網絡協議,目的是爲了保存長鏈接,以實現即時通信功能
- XMPP的客戶端是使用一個XMPPFramework的框架
- XMPP的服務器是使用Openfire,一個開源的服務器 假設客戶端獲取到服務發送過來的還有消息,客戶端須要對XML進行解析,使用的解析框架的KissXML框架
在使用XMPP的時候有沒有遇到什麼苦難
- 發送附件(圖片,語音,文檔...)時比較麻煩
- XMPP框架沒有提供附件傳送的功能,須要本身實現
- 實現方法,把文件上傳到文件服務器,上傳成功後獲取文件保存路徑,在把附件的路徑發送給好友
是否使用過換新,簡單的說下環信的實現原理
- 環信一個即時通訊的服務提供商
- 環信使用的是XMPP的一些,它是在XMPP的基礎上進行二次開發,對服* 務器Openfire和客戶端進行功能模型的添加和客戶端SDK的封裝,環信的本質仍是使用XMPP,基於Socket的網絡通訊
- 環信內部實現了數據緩存,會把聊天記錄添加到數據庫,把附件下載到本地,程序員更多時間花到界面用戶體驗上
- 環信內部已經實現了視頻,音頻,圖片,其餘附件發送功能。
- 環信使用公司能夠節約時間成本
- 不須要公司內部搭建服務器
- 客戶端的開發,使用環信SDK比使用XMPPFramework更簡潔方便
(有一句話叫作三人行必有我師,其實作爲一個開發者,有一個學習的氛圍跟一個交流圈子特別重要這是一個個人iOS交流羣656315826,無論你是小白仍是大牛歡迎入駐,正在求職的也能夠加入,你們一塊兒交流學習,話糙理不糙,互相學習,共同進步,一塊兒加油吧。)程序員
如下網盤內的資料均可以找我免費獲取,但願能夠幫助到你們數據庫
