tigase開發(fā)指南_第1頁
tigase開發(fā)指南_第2頁
tigase開發(fā)指南_第3頁
tigase開發(fā)指南_第4頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、.tigase 開發(fā)指南tigase 組件插件配置tigase 啟動時會初始化并啟動相關(guān)組件和插件,啟動的組件或開通監(jiān)聽端口號或訪問數(shù)據(jù)庫或者創(chuàng)建線程池,默認有些組件和插件非必須,我們也用不到,為了避免資源浪費,需要在配置中注釋這些組件。組件如下表格所示,紅字的組件說明:tigase 組件說明Amp高級消息處理Bosh提供客戶端http 長連接c2s提供客戶端tcp 連接cl-comp置集群組件eventbus事件總線,部處理message-archive消息歸檔monitor監(jiān)控muc聊天室proxy代理pubsub發(fā)布訂閱s2stigase 服務(wù)端節(jié)點之間交互sess-man會話管理配置文

2、件配置啟動組件:修改 pertiesmessage-router/components/msg-receivers/id-namess=bosh,cl-comp, eventbus, s2s,sess-man插件如下表格所示,紅字的插件說明:Word 資料.tigas 插件說明參數(shù)說明jabber:iq:register注冊服務(wù)message-archive-xep-0136消息歸檔jabber:iq:auth簡單用戶認證urn:ietf:params:xml:ns:xmpp-saslSASL協(xié)商urn:ietf:params:xml:ns:xmpp-bind資源綁定urn:i

3、etf:params:xml:ns:xmpp-sessionsession 綁定jabber:iq:roster聯(lián)系人管理presence-statexmpp 頂級元素,上線廣播jabber:iq:privacy隱身協(xié)議jabber:iq:version客戶端版本/protocol/stats是否發(fā)送統(tǒng)計信息,指向 發(fā)送startlstls 加密msgoffline離線消息vcard-temp臨時的 vCard/protocol/commands管理 virtual domains 的特別命令jabber:iq

4、:private私有數(shù)據(jù)存儲urn:xmpp:ping心跳檢測presence-subscription發(fā)布訂閱插件domain-filter(basic-filter)domain 攔截器amp(basic-filter)高級消息處理zlib(basic-filter)zlib 壓縮message-carbons(basic-filter)將 stanzas 投遞到用戶指定的資源disco(basic-filter)服務(wù)發(fā)現(xiàn)配置文件配置啟動組件:修改 pertiessess-man/pluginss= session-close, session-open, default-

5、handler, urn:ietf:params:xml:ns:xmpp-sasl, urn:ietf:params:xml:ns:xmpp-bind, urn:ietf:params:xml:ns:xmpp-session, jabber:iq:roster, jabber:iq:privacy, jabber:iq:version, /protocol/stats, starttls, vcard-temp,Word 資料./protocol/commands,jabber:iq:private, urn:xmpp:ping,

6、 amp , disco,domain-filter,zlib, message-carbons, vcard-xep-0292,urn:xmpp:timeTigase 數(shù)據(jù)庫表Tigase 用戶信息、權(quán)限信息、離線消息信息、在線離線狀態(tài)信息都存儲在數(shù)據(jù)庫中,但有些數(shù)據(jù)我們不需要讓tigagse 存儲、更新,比如在線離線狀態(tài)信息,如果每個用戶登錄、登出都讓 tigase 更新表的字段,并發(fā)高了,顯然數(shù)據(jù)庫承受不了。為了避免資源浪費也需要避免這些操作。登錄狀態(tài)上線更新上線狀態(tài)更新是在驗證用戶名和密碼時更新,驗證功能是需要我們自定義的,僅需修改tigase 驗證模塊的一小塊代碼即可。下圖貼出tig

7、ase 源碼修改方式。登錄狀態(tài)下線更新下線狀態(tài)更新是在用戶退出、連接斷開等時更新,修改代碼也比較簡單。Word 資料.tigase 權(quán)限驗證云果登陸流程時需要驗證權(quán)限,權(quán)限驗證需要分匿名用戶和企業(yè)客服兩種,匿名用戶默認驗證都可以通過,企業(yè)客服需要驗證是否在用戶中心登陸成功。企業(yè)客服登陸1.登陸用戶中心,登陸成功后,用戶中心會保存cookieid 至緩存中2.帶著用戶名、 cookieid 同 tigase 服務(wù)端建立連接3.從緩存中獲取驗證信息4.如果認證通過和 tigase 連接上tigase 的驗證是需要我們自定義開發(fā)的,只需要在tigase 權(quán)限驗證模塊修改即可。Word 資料.tiga

8、se 在線坐席獲取匿名用戶登陸需要根據(jù)客戶名分配一個在線坐席會話。tigase roster 插件是用于返回好友列表,可以修改用來分配坐席列表。插件的調(diào)用是在SessionManager 中調(diào)用:客戶端獲取好友列表:var iq = $iq(type: 'get',id: 'getmyroster'.tree();connection.send(iq);Word 資料.tigase 消息轉(zhuǎn)發(fā)流程用戶在發(fā)消息給客服時,如果客服不在線,需要分配給機器人客服,機器人客服是以tigase 客戶端方式使用的,并且為了負載均衡會有多個機器人客服,所以還需要分配。分配這塊功能

9、需要修改tigase sessionmanage 組件處理消息模塊的一段代碼。Tigase 所有的消息都會經(jīng)sessionmanager 進行處理。Packet 類中沒有 setStanzaTo 方法需要修改加入Word 資料.tigase 離線消息存儲tigase 在用戶不在線時,會把消息存儲在數(shù)據(jù)庫中,默認是關(guān)系型數(shù)據(jù)庫,這塊我們是需要存儲到hbase 等 nosql 數(shù)據(jù)庫中的,這塊功能需要修改下源碼tigase 已經(jīng)寫好的離線消息插件。此外 tigase 默認的離線消息存儲是有條數(shù)限制的,需要修改配置文件tigase 用戶連接斷開通知客服client 與 server 連接斷開, Se

10、ssionManager 會接收到斷開消息,會話斷開是通過SessionCloseProc插件實現(xiàn)。斷開通知客服需要在連接斷開時,發(fā)一條消息給客服JID 通知。Word 資料.Packet 類中沒有 setStanzaTo 方法需要修改加入Word 資料.tigase 組件插件開發(fā)tigase 組件插件開發(fā),官方開發(fā)文檔有詳細介紹,可直接閱讀tigase-DevelopmentGuide.pd,已上傳上傳到svn。云果以后需要自定義一些組件、插件實現(xiàn)自定義功能。tigase 配置文件云果基于 tigase 源碼開發(fā)功能時,需要增加一些自定義的配置,關(guān)于配置文件模塊,tigase 是作為一個組件

11、開發(fā)的,所以我們僅需要簡單修改一下配置文件模塊。tigase sslSSL(Secure Sockets Layer 安全套接層 ),及其繼任者傳輸層安全(Transport Layer Security ,TLS)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。TLS 與 SSL在傳輸層對網(wǎng)絡(luò)連接進行加密。Tigase 支持 ssl 通信功能,底層使用NIO+JSSE 實現(xiàn)。1. 啟用 ssl修改 perties ,增加配置-bosh-ports=5280,5281bosh/connections/5281/socket=sslbosh/connections/5281/ty

12、pe=accept注: 5280 端口號用于正常通信,5281 端口號用于ssl 通信Word 資料.2. js 連接 tigase ssl由原來的訪問地址http:/ip:5280改為 https:/ip:5281即可正常訪問。注:由于 https 請求瀏覽器需要可信證書才允許訪問,否則會拒絕訪問,需要把訪問的https 地址設(shè)置為可信才能訪問或者加入可信證書。導(dǎo)入pem 文件至瀏覽器下面3 會介紹。3. ssl 證書tigase 發(fā)布的包解壓后 ,在 certs/ 目錄中包含了密鑰和證書,其中后綴名位.pem 是 ssl 鑰匙包含了公鑰和私鑰匙, tigase 啟動時會為每個 domain

13、 生成一個 domain.pem 文件 ,如果不配置 domain 使用 default.pem 文件。 pem 文件也可以使用 openssl 生成,上線系統(tǒng)建議自己生成。pem 文件可以導(dǎo)入至瀏覽器證書中,這樣瀏覽器才不會禁止你的https 請求。證書如下所示:注:上線系統(tǒng)外網(wǎng)使用ssl 一般采用第三方的收費的商用證書,客戶端導(dǎo)入證書非常shan 麻煩,瀏覽器部會有一些CA ROOT 證書,一般包含了常用的商用證書。tigase 負載均衡Tigase 從版開始,引入了負載均衡功能,可以把終端訪問用戶重定向到最適合的集群節(jié)點上。此負載均衡功能依賴于see-other-host的 XMPP 流

14、錯誤消息( stream error message)。此機制背后的基本原則是如果用戶當(dāng)前正嘗試連接的節(jié)點與返回消息的節(jié)點不是集群中的同一個節(jié)點,那么用戶將被重定向。此原則需要獲得用戶的JID 實現(xiàn)重定向。一、可用的實現(xiàn)此 Tigase 的實現(xiàn)跟其他實現(xiàn)一樣,是可擴展的,支持不同的、可插撥的重定向策略,實現(xiàn)了SeeOtherHostIfc 接口。當(dāng)前有三種可用的策略:1) SeeOtherHost 策略此策略是最基本的實現(xiàn),它會返回perties配置文件中的單個主機名或當(dāng)前的主機名。Word 資料.2) SeeOtherHostHashed 策略這是 Tigase 默認使用的策

15、略,它對用戶的JID 值的進行哈希計算,根據(jù)哈希值來把終端連接重定向到 SeeOtherHostIfc 的集群環(huán)境中的節(jié)點。所有有效的節(jié)點是根據(jù)默認的集群組成和所有連接到集群并工作的節(jié)點共同決定,也可以把所有的節(jié)點配置到perties中。3) SeeOtherHostDB 策略此策略是 SeeOtherHost 策略的擴展實現(xiàn),它根據(jù)Tigase 數(shù)據(jù)庫的 user_id 和 node_id 配對的形式來決定終端用戶應(yīng)該被重定向到哪一個節(jié)點。二、配置選項下面是實際的負載均衡重定向最基本的相關(guān)配置:cm-see-other-host=它可能的值包括:none - disables

16、 redirection說明:前三行為三種重定向策略,最后一種是不使用重定向策略。其余的所有選項都是以連接管理器per-connection-manager為基礎(chǔ)進行配置的,因此這些選項都需要加上相應(yīng)的連接管理器ID 作為前綴,比如c2s、 bosh 、ws 的配置,下面以c2s 配置為例:c2s/cm-see-other-host/default-host=host1;host2;host3用分號來間隔重定向的主機節(jié)點名c2s/cm-see-other-host/active=OPEN;LOGIN用分號來間隔終端用戶可以被重定向的階段當(dāng)前可使用的值包括:OPEN 它表示打開XMPP stream 期間可以進行重定向LOGIN 它表示在授權(quán)認證用戶會話期間可以進行重定向Tigase 默認的重定向階段是OPEN 階段。SeeOtherHostDB 策略附加的選項包括:Word 資料LVS 負載均衡器實現(xiàn)負載功能。.c2s/cm-see-other-host/db-urlJDBC 連接的 URI,用于查詢重定向信息;如果沒有配置,那么會使用user-db-uri的值。c2s/cm-see-other-host/get-host-querySQL 查詢語句

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論