tigase开发指南文档格式.docx

上传人:b****5 文档编号:18003300 上传时间:2022-12-12 格式:DOCX 页数:23 大小:164.90KB
下载 相关 举报
tigase开发指南文档格式.docx_第1页
第1页 / 共23页
tigase开发指南文档格式.docx_第2页
第2页 / 共23页
tigase开发指南文档格式.docx_第3页
第3页 / 共23页
tigase开发指南文档格式.docx_第4页
第4页 / 共23页
tigase开发指南文档格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

tigase开发指南文档格式.docx

《tigase开发指南文档格式.docx》由会员分享,可在线阅读,更多相关《tigase开发指南文档格式.docx(23页珍藏版)》请在冰豆网上搜索。

tigase开发指南文档格式.docx

xmpp顶级兀素,上线广播

privacy

隐身协议

version

客户端版本

http:

//jabber.org/protocol/stats

是否发送统计信息,指向jabber.org发送

startls

tls加密

msgoffline

离线消息

vcard-temp

临时的vCard

//jabber.org/protocol/commands

管理virtualdomains的特别命令

private

私有数据存储

xmpp:

ping

心跳检测

presence-subscription

发布订阅插件

domain-filter(basic-filter)

domain拦截器

amp(basic-filter)

zlib(basic-filter)

zlib压缩

message-carbons(basic-filter)

将stanzas投递到用户指定的资源

disco(basic-filter)

服务发现

sess-man/plugins[s]=

session-close,

session-open,

default-handler.

xmpp-sasl,bind,urn:

xmpp-session,jabber:

privacy,jabber:

version,

//jabber.org/protocol/stats,

xmpp-jabber:

roster,

starttls,

vcard-temp,

 

PJScmavCHlKKH-Airaflw.

・占If“MH

►’刊jifr>

LHtviapa

»

-aJlloilV-ElUBfi■:

|L“心sdrrpGnsntrmdLJ曰

Pnmponir*m«

Mvh>

mppw^iq

k^3liQHia^ampcna-LraH^aTaBA

►Jlllgiiv.cflhr

■亦曰冶砂廿翰

・韵]也箱dD.|dbc

►常I中H.总也母

|

|/广巾皑旷忸少踊讪乂.

I/>

恢.;

frirt¥

a叭]

UslWCLMLFJKST.■懈円的能心盛飢LbflCM{0J"

|*■**•**"

);

}

}catdiCLxcentiorie){

pc.sttWrriftMX「al昶〉;

thrornewi®

*ceptionC6^ssmxrdw'

ifiwf.aniproblm.rte)^

nw.piJtitlldJt^fpasitory„FTOTtK'

a_Kt!

fpAusJiftepositary„FJfflHMOtWl_MJ¥

i45L>

;

itq仇putit甩ibeposilory.ghR-WKZrpjitil);

iiw.put<

i^t^«

pQ5itoryu呼油圈孑

.puHAut^flepasitofyaWliMLK'

fT*jid.^etftnQirif^)j

tw.iput<

ikjthR4vn»

ig.SfflW札w匚肛片J诃・jetDmflirtO);

axxi尸畑■,-^nint±

idiD^iia.逛■■會(■护

/-:

I7.■>

Ij

"

it號可bd*日为i«

用^K^fflrvEtlfnI

pc,wtyferiftrtCtrw);

I

Tigase数据库表

Tigase用户信息、权限信息、离线消息信息、在线离线状态信息都存储在数据库中,但有

些数据我们不需要让tigagse存储、更新,比如在线离线状态信息,如果每个用户登录、登

出都让tigase更新表的字段,并发高了,显然数据库承受不了。

为了避免资源浪费也需要避

登录状态上线更新

上线状态更新是在验证用户名和密码时更新,验证功能是需要我们自定义的,仅需修改

登录状态下线更新

//jabber.org/protocol/commands,jabber:

private,

ping,amp,disco,domain-filter,zlib,message-carbons,

vcard-xep-0292,urn:

xmpp:

time

■MT屮.*1NWHlVt

*dl^BWMnWilll■

►>

.E^jkM.1WWf>

fW«

*廊・191.・《轡2*暫

b>

JJii|Wi

►-lZM*.9CTrt<

I^Kt-«

iW

►h紀■«

**#*■*■*«

<

m*wt|wmm

*J|EiQAMMT#IriAWT

►十r«

HW5rr*trft«

■0呻十“十押

*,t|]aMiMnwJificpelm

■4tm>

*■■'

Jmpncorspwil

*-j|MW

►还百iMsr昨■耳URfPWW

翳宙Jtjfj*MAIW<

M_M4*fckkVl

・■」]气£

iaKOHMM“4r

■Jr*KT尹si

►辱剖ZlsUomTiW

•电畫”皿七新口1%■口mnw-RM翊

►0Dti'

MikHirdcr^rM.

frQ|SUldCMhMfrMSdl*1

匕AWr«

K>

jmj■-crHtandvP*D»

t>

}<

1*I

ifCI^.iil^gubleCUvtl.fimpt)}{

Iflg.logfLevel.fWF^fc"

MirtM!

0ofuse^seL^iorjs:

{B}*ssesstcrrsfi^odeldl

・Siz*O>

3

pw4

L!

Clofl-iSLogflfibKLwiI-;

JWtVJ)4

如■nSErinSfciildtrCiafl);

tigase权限验证

for(JWPftt!

«

rcrCamtrt:

iErescor:

虫tsior,getActivcRrsMircesO)Irb”eppend「冷re*-"

J.opperdfrEi_-on-ge-tlte&

aijrcciQ).;

I吗MO0(LevlHJTNEH"

NuMb即1OfCWftfidtlOfflEIt[刖靶Ftheuur*柑]位}Jr«

ObjMtQ{珂理l聞.gffUCtVMlKfSCWCEilZilO-uscrJidl^s&

.tDStrinQO}J;

}//Bridlcfe-l^a

]"

endofif(Miiion.<

0itA£

iivtfis4Mr<

a9.Sir*(}—B*)

}urtchCMHJkrttiCHr^zedEi£

£

9t1.anej{

IM.IrafIrm>

InMFfK'

rlrwMlmartajthnrupd;

聲代耳La:

JH1'

.4、:

云果登陆流程时需要验证权限,权限验证需要分匿名用户和企业客服两种,匿名用户默认验

证都可以通过,企业客服需要验证是否在用户中心登陆成功。

企业客服登陆

1.登陆用户中心,登陆成功后,用户中心会保存cookieid至缓存中

2.带着用户名、cookieid同tigase服务端建立连接

3.从缓存中获取验证信息

4.如果认证通过和tigase连接上

tigase的验证是需要我们自定义开发的,只需要在

tigase权限验证模块修改即可

llMHl

HlIniBTftMTr**"

JWCMWflWry!

MUPU^^rwmM卜*^・心口「■1W'

种加**■

會11F<

fA|#I'

M-nNPI"

t

*I■'

・£

.E对FMk即ihgHiv-iinrKlUdarni

►团bbKka

protzectwivflii”hnndlcWrifyP^spHonCollbodcCWtriFyPtiwwriKolltarlfcpc>

tbrwslOCaccptianf£

tHngpcA聲詔I-pr-^e!

-P<

K.KHDrdO;

电叩{

ObjKt>

pap■计Hg'

ihHcixStrinfl,0b>

Kt*O:

?

』Pli・i5Fmj•戎KJLJ*暉

■}rwhCMb*?

***^IFmi

PJ1£

ci«

niS*±

HlfaKHniiraliwhbm

►圍Uw

►曲1Kv料商■存

ldtol.lfr4l>

►JiTgetilflBUSffMWa#

►||Ti$m*4EW<

0卄C

*xliA-vufiMnt.gi|;

l*imd

►7」詁qpie.二arrpGnerxnKkdLi曰

P4|thaiU!

c-ampcinirtfrmdJnmipk夕1iQiiia.=ani3cnHr<

.rn=craHH

►J(ila»

.EDnr

J|1iipii»

4gnrdd

►出llg■阳4b

•*心・・-=血命审|i

・事晦9治堪卩廿巾)

►曲TlW0'

b.|dtiC

►常lA・bt>

l4・

1)

mt®

.ipuK*utrfifs»

sitory.rWTtKDL.KEr,AufchRcpasitor^.rm™DtWl.ACWSAiL);

mogpu慎加bepMiAwy.L&

EfiLJILJtEmjti);

iiw.pu慎勵IFAefK血iAory,內

iKfci.puMloryajid.$etDcnai.n(^);

.

心t^y.SFffKfli;

4txtt尸tio・加包户

//ttt可Utm%•耳片OiffiAflf.-est^nin.対姑卄诃dttzO;

Ug.lwCLew&

LFJWSJ.沖纤i曲驱SrtHWlL尿dd{0J-."

}StchCtX£

UtlCN1i)(

pc.setwriftrttral冗〉;

theorne«

ilOExce(rt:

io^(pRasMxdvwifiwt'

.onh1ctol*ii.Je)

tigase在线坐席获取

匿名用户登陆需要根据客户名分配一个在线坐席会话。

tigaseroster插件是用于返回好友列表,可以

修改用来分配坐席列表。

JZjiiliiwumtii二BTLsrapwlivi,1hlHiHqovIbartBriHaH徂StaMsnfeiavar—iaLjJLMMFPPkvcBHHariftEjHraIj.Jabbart^nDrtrjmaH

■"

'

■pBW-rt-jT'

»

i号j■匸nr"

*rn・$~lfc话Ji£

■*?

WP■juvrc^afvmtwi.■Oruwv**■cl^f,■ria^^ihfxfifiMcT?

1.:

//QicckrD4tfrws-itrihsaha

騎尸ins讣町阳一辟晌■啊匸辄皿耳拓业瑁加.dQW闭3¥

砂如七?

《七.呼屯JjTT>

jStrLnfli%fbedHa艸■s"

x

//ifclientprwi^ndnashandth?

wfvwcolculotedhash-a^th?

wio

f/returntheS4直ctisresult<

ndabortfurtherrenterprixsi^ing-

//Nato■伸dIfi*aM..^aAit*r14tN*c.1iwi11.

if(incnringHasiil!

・milX

■rustEr_irtil.getBvddicsHpaJX.M^sicnJ;

tf[(st^ridHaih一null\Ilft>

ar«

MKH.icEnptyf)M

upgkntiHdrsh(ite^slDrbw<

ting^);

匕处玮畫我门B疋坐常列购回

if<

(f讥叶孑|・n^\)tt(丙匕・》r*曲a-g)){ElfBHPt口册丫■rwELenfeHtC_query"

);

J

If£

it^valtC阪嵋r衫■洋)>

results.offcrCpgc-et.okResultC(5-fcn.rxi)「i/LL.0)};

5-tDnKmjsh—rmteT-uurtii_f)eHkKHie-s>

teh(swiionJ;

插件的调用是在SessionManager中调用:

ItgjEi-jEDni

prh«

MtmjijmlhfHnURadutt门Kki*狎咲1W**eiOur,C(<

CfiftftCtl0ftOwHrJ«

//fina-lELfflfcrt書1由.FimlpLjeuc-d1Defeatsrtsults)(for(n^PPiTKeiiorlfcproc_ii評iym酣心■-仇(

WPPPfKWWflfCFWWWf“peC/j.Ajfeiwr:

2-atinn-rfli-l■fiO^irkindlinfpor<

rfeBraprjh「Imj;

lif(r?

*nli:

Wrhor^articH..{

汀{Jcigi,i4ati|^(iLrvc<

sFf«

tsn>

f

2o^.Ic^(Leve1ufTMWrw.eiwrlfc:

您\({l}"

寸^J1■-Ki>

eqM«

t:

"

*■(ZhCd*;

{3}"

FW03}Kt0{M)rcfleta«

UH5IflfHeiiWC).pnjcesscir.iXJi.P»

rte!

Broinrttion});

i

*rw酣slqnwods即fWHSOElDFliffTIVW*Et*2応・?

血他幡如心

fl]入飪:

辆中.事怪堆塾矽显

■fCpt一mull)I眄■^>

1wjmiihirwtfi^wl>

iffp"

□dd[tm(F_:

:

cA.i£

y,porkrtp『nrrHirtiwij){pHtat.^TDCEisrxKjesMsTBLdf))p

m

//pniK:

Ht-detMjg()ueue-();

ifCJctf.t&

Lim^leCLevel.rjWD)(

客户端获取好友列表:

variq=$iq({

type:

'

get'

id:

getmyroster'

}).c('

query'

{xmlns:

Strophe.NS.ROSTER})•tree();

connection.send(iq);

tigase消息转发流程

用户在发消息给客服时,如果客服不在线,需要分配给机器人客服,机器人客服是以tigase客户端

方式使用的,并且为了负载均衡会有多个机器人客服,所以还需要分配。

分配这块功能需要修改

tigasesessionmanage组件处理消息模块的一段代码。

Tigase所有的消息都会经sessionmanager

进行处理。

ISM

packet-t<

jStringSecune(}a

3*計;

►it徒理则OftEoc

►g^BMHanOvan^oc

^jeye^acket?

-results込ne*Arr^Oecvue^PacketXZ);

boQlean玳®

■ffll&

e;

4EStJlfCXinficcDDnClaibM-

HV'

祈tBlvrifhPvdtrl>

彳XDU«

uiQiDMU<

NDMODE

*toq

!

■SE5-9I.1V

fiCrwUHtfiurabl*

©

4dlPh<

|hA

◎iuh_repckEJt€iry

uMh-TImrM

uUnTlBMMi

口口04鈕石

dcirjrKti£

iiiCT«

ckCDfnrnandHandli

IIJtlH*nS"

riP«

ectolPickrtHardHr

1801

血牡丘观堆加的牡庄,用户分配容呪

Pnckpt.Trcn$fornttarttll(r.pn?

t■防*:

〉,

[dr上科.procfsseday<

filterfQHdr^d"

jQp.loflCLtwl.FIWJT,-Racketpr«

proc«

UM)7*卜*»

padwt.ta&

trin^acmO^:

if>

0){

fui-(Pockrt:

」:

代剳八輻){

[t^,loQCL*wl.FINEST.'

Prwrecessr«

uLt;

匕p,to6tEr4Srcur«

0〉;

addOutPockAtsCpdCicft,corm,r«

fuLtf3^

publi匚claisPncketTrarsfonridandler{转證

publicstctitvoid

procesAjPocketpocks

tig白昶的消息内部会转换为packet对象分配容服机器人就是改变消息的接受者这块是我自定义实现的例子

ifCpccket.getTypeO—StcnzoType.chat){

//.tigssiffi务HB擅收消崽

StringfrcmCtxnpMdme-packet.getPacketFrorr<

).^etBdr&

JIDO.g览tLocalpcrt();

StringtcConipNamr=pcicket.getRocketToQ.getBareJIDQ.getLocalpartQ;

if(fromComphkrne.equalsftxjsh'

^X

这里可皿官罡交分配相羌功能

JIDdisIDsJlD.jitfZnatanceC'

zhangsan^LiniJx-irrtiSk"

packet.setStaaT0<

disIJ

System.out-printlnCpccketdispacterk/'

+pocket.toStringO);

}catch(TigaseStringprepEx匚pptiori电){

//TODOAuto-generatedcatchblock

e.prlntStacklracef);

/Ztigowf麗剪划发送消崽

ifffromCotnpNcme.equolsf,1sessLcnh,5型toCorrpNanie.equaIsC"

session"

1)){

Packet类中没有setStanzaTo方法需要修改加入

030■/

publicJIDgetStanzaToO{

858returnstanzaTo;

859}

稅1Ppublicvoidset5tanzaTo(JIDjid){

862Ithis-stanzaTc^jid;

863

864-

tigase离线消息存储

tigase在用户不在线时,会把消息存储在数据库中,默认是关系型数据库,这块我们是需要存储到

hbase等nosql数据库中的,这块功能需要修改下源码tigase已经写好的离线消息插件

Urr41ishrij^v^yVitiP-r'

IA1rS>

^r,、叩]#hI>

rufyrflIii,ttA;

i,»

t*<

'

f

rt#^rhodt&

StiiPtpiSCk-frt"

fedfl.\1^4Ltcryj

raiiE

raw

irTiorn-a<

Vrarr;

Jt

血Vb*-M£

C4mp9WrtJLgnV^lp^MVFiL****■»

¥

甜^W«

M4*VJ|N«

ififcom!

—nvTlUppckrt,^ctStcnfaToC)11-r>

ul"

LK!

canri,i»

UsrrrTd(pQcric*tBgetSTanjaTof}.^etBarEjTDO^J

此4E为保存參Jfitl犀j可口崔义

LtoryIfcrr^d怦pu**^TN!

i^ft«

pciIrtpl(rt^a.fturn>

AuthorifgitianwveAe&

^ltJ5»

eFcsketF^rtrfFlirwlJserCpocket,“网、卜他维1result■null;

switchCwwAes^lt)(

comSfWKL-MAWLUt^-,

rtlult*»

cflEiult.ifGTflesi<

KriW*ls5^4t(jXkk^t,"

tsfriinirhe&

s^ciqueueiiFuHLjtwj]b^Mir;

drfault;

brarir;

H

ifCntwllt怙null)(

queue

KMCUs电冲k>

L卜owndRj临eplLS€)£

if(』《«

HUggspbltfIt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1