Socket、XMPP的實現原理、環信的實現原理
阿新 • • 發佈:2019-02-03
- Socket又稱"套接字”
- 網路上的兩端通過建立一個雙向的通訊連線實現資料的交換,這個端就稱為一個Socket端。
- 應用程式通常通過"套接字"向網路發出請求或者應答網路請求
是否使用過XMPP,XMPP的實現原理
- XMPP是一個即時通訊的協議,它規範了用於即時通訊在網路上資料傳輸格式的,比如登入,獲取好友列表等等的格式。XMPP在網路傳輸的資料是XML格式
- 比如登入:把使用者名稱和密碼放在xml的標籤中,傳輸到伺服器
- XMPP是一個基於個Socket通過的網路協議,目的是為了儲存長連線,以實現即時通訊功能
- XMPP的客戶端是使用一個XMPPFramework框架實現
-
XMPP的伺服器是使用Openfire
- 客戶端獲取到伺服器傳送過來的好友訊息,客戶端需要對XML進行解析,使用的解析框架的KissXML框架,而不是NSXMLParser/GDataXML
在使用XMPP的時候有沒有需要什麼困難
- 傳送附件(圖片,語音,文件…)時比較麻煩
- XMPP框架沒有提供傳送附件的功能,需要自己實現
- 實現方法,把檔案上傳到檔案伺服器,上傳成功後獲取檔案儲存路徑,再把附件的路徑傳送給好友
是否使用過環信,簡單的說下環信的實現原理
- 環信是一個即時通訊的服務提供商
-
環信使用的是XMPP協議,它是再XMPP的基礎上進行二次開發,對伺服器Openfire和客戶端進行功能模型的新增和客戶端SDK的封裝,環信的本質還是使用XMPP
- 環信內部實現了資料快取,會把聊天記錄新增到資料庫,把附件(如音訊檔案,圖片檔案)下載到本地,使程式設計師更多時間是花到使用者體驗上
- 環信內部已經實現了視訊,音訊,圖片,其它附件傳送功能
- 環信使用公司可以節約時間成本
- 不需要公司內部搭建伺服器
- 客戶端的開發,使用環信SDK比使用XMPPFramework更簡潔方便