Tigase開發(fā)筆記3:Tigase 參數(shù)配置說明

sm-plugin說明:

參數(shù) 說明 參考
jabber:iq:register 注冊服務(wù)
message-archive-xep-0136 消息歸檔
jabber:iq:auth 簡單用戶認證
urn:ietf:params:xml:ns:xmpp-sasl SASL協(xié)商 參考
urn:ietf:params:xml:ns:xmpp-bind 資源綁定
urn:ietf:params:xml:ns:xmpp-session session綁定
jabber:iq:roster 聯(lián)系人名單管理
presence xmpp頂級元素,上線廣播
jabber:iq:privacy 隱身協(xié)議
jabber:iq:version 客戶端版本
jabber.org/protocol/st… 是否發(fā)送統(tǒng)計信息,指向jabber.org發(fā)送
startls tls加密
msgoffline 離線消息
vcard-temp 臨時的vCard
jabber.org/protocol/co… 管理virtual domains的特別命令 參考
jabber:iq:private 私有數(shù)據(jù)存儲
urn:xmpp:ping 心跳檢測
pep 發(fā)布訂閱插件 參考
domain-filter(basic-filter) domain攔截器 參考
amp(basic-filter) 高級消息處理 參考1,參考2
zlib(basic-filter) zlib壓縮
message-carbons(basic-filter) 將stanzas投遞到用戶指定的資源
disco(basic-filter) 服務(wù)發(fā)現(xiàn)

標準錯誤代碼:

代碼 說明
302 重定向,盡管HTTP規(guī)定中包含八種不同代碼來表示重定向,Jabber只用了其中一個(用來代替所有的重定向錯誤)。不過Jabber代碼302是為以后的功能預(yù)留的,目前還沒有用到。
400 壞請求,Jabber代碼400用來通知Jabber客戶端,一個請求因為其糟糕的語法不能被識別。例如,當一個Jabber客戶端發(fā)送一個的訂閱請求給它自己活發(fā)送一條沒有包含“to”屬性的消息,Jabber代碼400就會產(chǎn)生。
401 未授權(quán)的,Jabber代碼401用來通知Jabber客戶端它們提供的是錯誤的認證信息,如,在登陸一個Jabber服務(wù)器時使用一個錯誤的密碼,或未知的用戶名。
402 所需的費用,Jabber代碼402為未來使用進行保留,目前還不用到。
403 禁止,Jabber代碼403被Jabber服務(wù)器用來通知Jabber客戶端該客戶端的請求可以識別,但服務(wù)器拒絕執(zhí)行。目前只用在注冊過程中的密碼存儲失敗。
404 沒有找到,Jabber代碼404用來表明Jabber服務(wù)器找不到任何與JabberID匹配的內(nèi)容,該JabberID是一個Jabber客戶端發(fā)送消息的目的地。如,一個用戶打算向一個不存在的JabberID發(fā)送一條消息。如果接受者的Jabber服務(wù)器無法到達,將發(fā)送一個來自500級數(shù)的錯誤代碼。
405 不允許的,Jabber代碼405用在不允許操作被’from’地址標識的JabberID。例如,它可能產(chǎn)生在,一個非管理員用戶試圖在服務(wù)器上發(fā)送一條管理員級別的消息,或者一個用戶試圖發(fā)送一臺Jabber服務(wù)器的時間或版本,或者發(fā)送一個不同的JabberID的vCard。
406 不被接受的,Jabber代碼406用于服務(wù)器因為某些理由不接受一個包。例如,這個可能發(fā)生在,一個Jabber客戶端試圖使用jabber:iq:private在服務(wù)器上存儲信息,但當前的用于存儲的名字空間用”jabber:”開頭(在Jabber里是一個被存的XML開頭)。另一種可能產(chǎn)生406錯誤的情況是當一個Jabber客戶端試圖用一個空密碼注冊到一臺Jabber服務(wù)器上。
407 必須注冊,Jabber代碼407當前不被使用
408 注冊超時,當一個Jabber客戶端不能在服務(wù)器準備好的時間內(nèi)發(fā)起一個請求時,Jabber服務(wù)器生成Jabber代碼408。這個代碼當前只用于Jabber會話管理器使用的零度認證模式中。
409 沖突
500 服務(wù)器內(nèi)部錯誤,當一臺Jabber服務(wù)器遇到一種預(yù)期外的條件,該條件阻止服務(wù)器處理來自Jabber客戶端的包,這是將用到Jabber代碼500。現(xiàn)在,唯一會引發(fā)500錯誤代碼的時間是當一個Jabber客戶端試圖通過服務(wù)器認證,而該認證因為某些原因沒有被處理(如無法保存密碼)。
501 不可執(zhí)行,當服務(wù)器不支持Jabber客戶端請求的功能,使用Jabber代碼501。例如,該代碼只當Jabber客戶端發(fā)送一個認證請求,而該認證請求不包含服務(wù)器配置中定義的任何一種認證方式時,服務(wù)器發(fā)送Jabber代碼501。這個代碼還被用于,當一個Jabber客戶端試圖注冊一個不允許注冊的服務(wù)器。
502 遠程服務(wù)器錯誤,當因為無法到達遠程服務(wù)器導(dǎo)致轉(zhuǎn)發(fā)一個包失敗時,使用Jabber代碼502。該代碼發(fā)送的特殊例子包括一個遠程服務(wù)器的連接的失敗,無法獲取遠程服務(wù)器的主機名,以及遠程服務(wù)器錯誤導(dǎo)致的外部時間過期。
503 服務(wù)無法獲得,當一個Jabber客戶端請求一個服務(wù),而Jabber服務(wù)器通常由于一些臨時原因無法提供該服務(wù)時,使用Jabber代碼503。例如,一個Jabber客戶端試圖發(fā)送一條消息給另一個用戶,該用戶不在線,但它的服務(wù)器不提供離線存儲服務(wù),服務(wù)器將返回一個503錯誤代碼給發(fā)送消息的JabberID。當為vcard-temp和jabber:iq:private名字空間設(shè)置信息時,出現(xiàn)通過xdb進行數(shù)據(jù)存儲的寫入錯誤,也使用該代碼。
504 遠程服務(wù)器超時,Jabber代碼504用于下列情況:試圖連接一臺服務(wù)器發(fā)生超時,錯誤的服務(wù)器名。
510 連接失敗,Jabber代碼510目前還沒有使用。

擴展code(XMPPErrorCodeExtension枚舉),如果大家定義了,請加在此處。 ERROR_TH(4031, “cancel”, “登陸過于頻繁或者流量過大”)

MUC相關(guān)技術(shù)

  • XEP-0004: 數(shù)據(jù)表單,用來交換數(shù)據(jù)。

CS和SM分離

  • tigase中是可行的,但是目前架構(gòu)沒有這樣做。這樣做會增加網(wǎng)絡(luò)開銷,目前此方案,不是很好,待嘗試。

使用到得XEP

群聊室的屬性

我們設(shè)計的群已經(jīng)不是標準的xmpp群了,下面的屬性是對于smack或者標準的xmpp群有意義的。

  • 房間名稱|muc#roomconfig_roomname

  • 描述|muc#roomconfig_roomdesc

  • 允許占有者更改主題|muc#roomconfig_changesubject

  • 最大房間占有者人數(shù)|muc#roomconfig_maxusers

  • 其 Presence 是 Broadcast 的角色|muc#roomconfig_presencebroadcast

  • 列出目錄中的房間|muc#roomconfig_publicroom

  • 房間是持久的|muc#roomconfig_persistentroom

  • 房間是適度的|muc#roomconfig_moderatedroom

  • 房間僅對成員開放|muc#roomconfig_membersonly

  • 允許占有者邀請其他人|muc#roomconfig_allowinvites

  • 需要密碼才能進入房間|muc#roomconfig_passwordprotectedroom

  • 密碼|muc#roomconfig_roomsecret

  • 能夠發(fā)現(xiàn)占有者真實 JID 的角色|muc#roomconfig_whois

  • 登錄房間對話|muc#roomconfig_enablelogging

  • 僅允許注冊的昵稱登錄|x-muc#roomconfig_reservednick

  • 允許使用者修改昵稱|x-muc#roomconfig_canchangenick

  • 允許用戶注冊房間|x-muc#roomconfig_registration

  • 房間管理員|muc#roomconfig_roomadmins

  • 房間擁有者|muc#roomconfig_roomowners

線上服務(wù)器環(huán)境配置

tcp調(diào)優(yōu)參考我之前的文章Linux TCP調(diào)優(yōu)

Tigase默認jars包的版本信息(啟動的日志文件中可以看到)

Loading component: amp :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.amp.AmpComponent}Loading component: bosh :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.bosh.BoshConnectionManager}Loading component: c2s :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.xmppclient.ClientConnectionManager}Loading component: http :: componentInfo{Title=Tigase HTTP API component: Tigase HTTP API component, Version=1.1.0-b83/d51e1db6, Class=tigase.http.HttpMessageReceiver}Loading component: message-archive :: componentInfo{Title=Tigase Message Archiving Component, Version=1.1.0-b71/c4003eb3, Class=tigase.archive.MessageArchiveComponent}Loading component: monitor :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.monitor.MonitorComponent}Loading component: muc :: componentInfo{Title=Tigase MUC, Version=2.3.0-b389/879168a9, Class=tigase.muc.MUCComponent}Loading component: proxy :: componentInfo{Title=Tigase Socks5 Component, Version=1.1.0-b48/f5c8a08c, Class=tigase.socks5.Socks5ProxyComponent}Loading component: pubsub :: componentInfo{Title=Tigase PubSub, Version=3.1.0-b463/1df4d937, Class=tigase.pubsub.PubSubComponent}Loading component: s2s :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.xmppserver.S2SConnectionManager}Loading plugin: session-close=4:1265 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: session-open=4:1265 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: default-handler=4:1265 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber:iq:register=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber:iq:auth=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: urn:ietf:params:xml:ns:xmpp-sasl=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: urn:ietf:params:xml:ns:xmpp-bind=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: urn:ietf:params:xml:ns:xmpp-session=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber:iq:roster=2:2530 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber:iq:privacy=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber:iq:version=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber.org/protocol/st… ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: starttls=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: vcard-temp=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber.org/protocol/co… ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber:iq:private=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: urn:xmpp:ping=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: presence=2:2530 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: disco=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: zlib=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: amp=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: message-carbons=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: message-archive-xep-0136=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)MA LOADED = message-archive@10.5.1.12Loading component: sess-man :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.xmppsession.SessionManager}Loading component: ws2s :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.websocket.WebSocketClientConnectionManager}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容