由於項目需要做一個基於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肯定是可以的。