1. 程式人生 > >Socket、XMPP的實現原理、環信的實現原理

Socket、XMPP的實現原理、環信的實現原理

  • 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
    ,基本於Socket的網路通訊
  • 環信內部實現了資料快取,會把聊天記錄新增到資料庫,把附件(如音訊檔案,圖片檔案)下載到本地,使程式設計師更多時間是花到使用者體驗上
  • 環信內部已經實現了視訊,音訊,圖片,其它附件傳送功能
  • 環信使用公司可以節約時間成本
  • 不需要公司內部搭建伺服器
  • 客戶端的開發,使用環信SDK比使用XMPPFramework更簡潔方便