Android平台下基於XMPP的IM研究

來源:互聯網
上載者:User

由於項目需要做一個基於XMPP協議的Android通訊軟體。故開始研究XMPP

XMPP協議採用的是用戶端-伺服器架構,所有從一個用戶端發到另一個用戶端的訊息和資料都必須經過XMPP伺服器轉寄,而且支援伺服器間DNS的路由,也就是說可以構建伺服器叢集,使不同的伺服器下的用戶端也可以通訊,XMPP的前身是一個開源組織制定的網路通訊協定——Jabber,XMPP的核心是在網路上分區段發送XML流的協議,這個協議是XMPP的即時通訊指令的傳遞手段。

為了防止伺服器間發送的資料被篡改或偷聽,XMPP伺服器通訊引入了TLS機制,使用TLS機制能實現資料的加密,從而保證了在資料轉送過程種資料的安全。

一個XMPP實體的地址稱為Jabber Identifier或JID,作用類似於IP地址。一個合法的JID包括節點名,網域名稱資源名,其格式為:jid=[node'@']domain['/'resource]

 

XMPP協議的命名空間:
jabber:iq:private   -- 私人資料存放區,用於本機使用者私人設定資訊,比如使用者備忘等。
jabber:iq:conference  -- 一般會議,用於多個使用者之間的資訊共用
jabber:x:encrypted -- 加密的訊息,用於發送加密訊息
jabber:x:expire  -- 訊息終止
jabber:iq:time  -- 用戶端時間
jabber:iq:auth  -- 簡單使用者認證,一般用於伺服器之間或者伺服器和用戶端之間的認證
jabber:x:roster  -- 內部花名冊
jabber:x:signed  -- 標記的線上狀態
jabber:iq:search -- 使用者資料庫查詢,用於向伺服器發送查詢請求
jabber:iq:register -- 註冊請求,用於使用者註冊相關資訊
jabber:x:iq:roster -- 花名冊管理
jabber:x:conference -- 會議邀請,用於向參加會議使用者發送開會通知
jabber:x:event  -- 訊息事件
vcard-temp  -- 臨時的vCard,用於設定使用者的頭像以及暱稱等

 

在網上找了下,有開源的項目BEEM,開源的用於Android的xmpp架構asmack,asmack是smack的android版本。現在開始學習smack

。Xmpp就是神馬東西,就不廢話了。首先在網上下一個Openfire和Spack,不知道這兩個是什麼東西,就直接google吧。安裝openfire需要mysql的支援,當然,oracle,sqlserver肯定是可以的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.