openfire的入門學習

今年開始到5月都在學習和使用openfire進行公司新的項目開發,這裏正好整理一下學習筆記。 java

openfire是什麼? node

Openfire 採用Java開發,開源的實時協做(RTC)服務器基於XMPP(Jabber)協議。Openfire安裝和使用都很是簡單,並利用Web進行管理。單臺服務器可支持上萬併發用戶。 api

安裝openfire,這個網絡上面教程不少,安裝也很方便,只要有jre環境就ok,就很少作說明了。 服務器

openfire採用xmpp協議,底層怎麼交互能夠不用研究,反正就是按xml的協議進行消息的交互。xml的好處就是擴展性強,缺點應該就是冗餘 網絡

公司用的java開發,這裏就涉及到openfire提供的api包,在java是smack,這是一個封裝了不少消息,事件的包,使開發openfire變的至關快速。 併發


再講解一些openfire中的一些基本概念: dom

jid: node@domain/resource,這就至關於惟一標示

(1) 名(domain identifier);openfire服務器的名稱 ide

(2) 點(node identifier);用戶的名稱 學習

(3) 源(resource identifier).資源,能夠理解爲能夠經過多種軟件鏈接openfire,那個軟件的標示 spa


3個基礎包

Presence:出席包,用來告知服務器是上線仍是下線等狀態信息

 用枚舉類型Presence.Type的值表示:
 available -- (默認)用戶空閒狀態
 unavailable -- 用戶沒空看消息 
 subscribe -- 請求訂閱別人,即請求加對方爲好友 
 subscribed -- 統一被別人訂閱,也就是確認被對方加爲好友 
 unsubscribe -- 他取消訂閱別人,請求刪除某好友
 unsubscribed -- 拒絕被別人訂閱,即拒絕對放的添加請求 
 error -- 當前狀態packet有錯誤
 內嵌兩個枚舉類型:Presence.Mode和Presence.Type.
 可使用setStatus自定義用戶當前的狀態(像QQ同樣的)

U:<presence from='alice@example.com/work'to='support@workgroup.example.com'>
U:</presence>


Message:消息包

Message.Type:

chat:聊天

groupchat:羣聊

headline:在線消息(對方若是不在線不會保存)

< message to= ‘lily@jabber.org/contact’ type =’chat’ >   
< body >  你好,在忙嗎< /body > 
< /message > 

IQ 

一種請求/響應機制,從一個實體從發送請求,另一個實體接受請求,並進行響應.例如,client在stream的上下文中插入一個元素,向Server請求獲得本身的好友列表,Server返回一個,裏面是請求的結果. 
< iq >  主要的屬性是type。包括: 
Get :獲取當前域值。 
Set :設置或替換get查詢的值。 
Result :說明成功的響應了先前的查詢。 
Error: 查詢和響應中出現的錯誤。 

結構以下所示: 
< iq from =‘lily @ jabber.com/contact’id=’1364564666’ Type=’result’>


主要的幾個知識點先介紹,由於這些基礎的概念網絡上面不少就很少介紹了。

接下去會介紹一下本身在項目中用到的:系統提供的插件fastpath,以及整個的協議交互,還有本身開發插件,jsjac這幾個部分。

相關文章
相關標籤/搜索