From bfa0b5b8ea54091a045ae203b1905836c846fa72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BF=9C=E6=96=B9=E5=A4=95=E9=98=B3?= Date: Wed, 8 Sep 2021 21:46:51 +0800 Subject: [PATCH] =?UTF-8?q?TagSessionGroup=E6=96=B0=E5=A2=9E=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=99=A8=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cim-boot-server/cim-boot-server.iws | 5 +---- .../libs/cim-server-sdk-netty-4.0.0.jar | Bin 79151 -> 79349 bytes .../cim/sdk/server/group/SessionGroup.java | 9 +++++++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cim-boot-server/cim-boot-server.iws b/cim-boot-server/cim-boot-server.iws index 6c69322..4649940 100644 --- a/cim-boot-server/cim-boot-server.iws +++ b/cim-boot-server/cim-boot-server.iws @@ -8,10 +8,6 @@ - - - - diff --git a/cim-boot-server/libs/cim-server-sdk-netty-4.0.0.jar b/cim-boot-server/libs/cim-server-sdk-netty-4.0.0.jar index 5ccdbd3f337ac3d49fb095d3665e46ed58bc4cb2..ffcbccf319c7359831d1dec49460c58df0c920b2 100644 GIT binary patch delta 5412 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 delta 5171 zcmZWt2|QHm8$QR_(%AQ5F!rUf%#bBZ+4rS%?MvheSCW#728EPznQ|!EqHfkKS?0=( zME|l&){0~oQX<6v%$%uv-8;YE%z4lIJn!>;=iAQv&dMBP*(@W6y%ma)4WNF6i<%Cm za7Zx!6zjjqR~Yc*MQP@LyG% zcLBfwY7>>wC}&0*uX2RNfCsU}F~cat+QM>zh{Y{l%YazzxK9i;F;>eh69WbS_y7xP z()zn7ElTpR<2}HqcPOwwt)ME0|E5ZTPr%LGG);73Ky{T$B;y$2fvMbEjqMjf+uD?~5M zsq#^TBOIj7gOl9q+~p=s`gn(kM}rEFt8m3HIVs{FM93$7Yx~ZdT*z3jy|&OI`&x1= zQ`_=rJZa)~p70B)%jGHH>fz~D*Q;Gi+|Nfk8Ua4S+#1JiPMVN=xSNO_bm35t-q40 zUmwr9PdugC=2Xg2Bj~$7;mFu5>56HxALW`$S92p9)4l_gC%j*5adxi*Qma$)m_8If z3i0k+G>^jJ;}|{)Ujcu0$bYPUxe2`hBp&S+!rxlp3L;%TTzI%sEu|@8*6HDpb`RRW z_H^QHJ3Fl#mxuLUWQjDYc#J~NHO-2>9Gat+T{c^|4BSe-8&0A-wjWRuGqHwxIhrh7p?mO~-SjZ>F+Vv`ogZKnXfz%H3J!7^=Wqn~maA8@SP>W6F28!y zQx!m72&UY(>WQ)%-p})->)wp%kouc`QkOwvf7w(=k{`~BaNHm&d$Rrf>YMW&XICGe znVQ&kKMOv=t~v3A)>}NgefRPx-X?-yjC8EYEw@!Q(HiX{qN&T~EFYmB z-@245ub-4`K6jU4!dER)G@ENG+ws!_`LC=at%oCBWA+BR#1qqdJ^D}Z8z;10&(0)8 zNNC*Bf8c#+w)ldroq#S860Hi;mKx8f?z^9(5Nzv4aXNu!s&P`EwaW z$6jo#T;#(3aXqD`Q}}vp#NnqYv5e*!rT$zvIgKy3(`K*-?FAQg3UV%Vbr7~FHv)vm z<2LihGGEDs%@6)wK|Hr`VfWsM?1gy$di_5Mq(#0o&?`X^6~J!GZ>CB z>HF9}RUvDUQY(&x36uA>B5xghJsaQ7dT&q|gilg5?pU9{9$>S(z00x@-{()*pA#SJ z7Q`emL5a=azrb(!j9~K7!=+9{Iz8L%My~e9nT$cTs1B09CxLs$sk3MC77MobE~$Ng zAOY1OIkYa?>UTDFgrdJ5%)pYxv@Lr zFc47UU7Vwae%2SDkfHFcz59Aa>DGiY<52T9Dwt`gU0cr}qi>(_`t|Q@=f)>ggQTav zyAx&YJR66)u4P+eH~5lToGQOQ(%et-CCLhkG5oTNk`(O6cHP%mY({x+^7I0l_i=1$ zk(1e%#CsoO$!ez7gJyG9otGcKw|lB@|LA*>u9wc&m(88W2Cn8`=?q*G)h~O$8`E%E z&N0&BDfEf|S8Ht+_A~FJ;~6O$k^FXw1I~%$czxZ1v7j|dRYUIB?VfdkhLZRDFr+?EdP+E=Xg~sO9dgyv9C(P2;C_pJK0M2SjiiIDOj9 z{#SFE`X;7dyBR> z4$JVHqI+*G0IP8$Rpr(l;n#AS?YqPlU31Z6^VmoDX>!f9PhH-qaov(k#%X8kHfxu- zFkYb{#g8Z7%G)S+UdkLBOpATfH?bslkG6)`!;~{435U4`TJ|@FHwZ@4}6VogC`J4i>R_1zy95jm#or&1ro!>!*jHh7>U{gHxuEX@0LbV7*#k-vWBUy}hjJs((PBaN&-v5(8ry8-GDrRHe3<9-Pie zV`06UEgjDqnPhLrHNrD-D&-`_{Oq3mNMQJdJd57d8*cU_Y)O97+(A9gy}cx#^s`*Q z+x8mW$#!q9do;xsmO595k6r$tV{K*@X}<5`E)(-P?QnVPS}CD|N0M>M**v4iU0+7x zyFJ=2FFWpYO$~JIE)!U14>x1u?45I-Ug6d^N$<#dIiSDb>-D5$Q|!-Jtl?-itFrGD zL%0c7OOevp$t0zydgHepK5ZS6B*>Oc&vs6u?WJ#(XR79O9i#_V@Zue`)r=0988rkq z)kFm(;Jwc<+Ckg~o`&`9oT$G}XBVrzSytzGBZgiLK6J(h#9BZ6>{rSG)dnv2gBO&{ zA=CQuh^+aq!O;VU=QC?W4t?5;k4fhPA&GN z7IUU{GgYc+^9v$Luem)BJ>1hFTL|%if%oV_MZcx-BR-SZAw+Tw66|RM0pJn}k<=#J zcQ99m#7)p;oD+KK!75jd(u1MwK{|RWSC|PAOu0v(TdhU>bab?siSC;z=b-yGDt3z? z5o{fWbmiKvLv)L?S5z25Rpu|yedP;|tcY*d>IyS0qlY&BXwPB>fFoQ0pazeFY^BCl zH8YJ=v&aZCAd%1tGq{L2r&&N(q$@S1?BExqYN*lY236=$p@N_>iji7iL3J2V0kI}A zpeD_#!HIxMC~hizV&!%ANw`!Bhrj!w3nHL4lqLppkeXDvqQ~^?Lc6qadIa-a@3NoN3SuUsb?QhZ= zf?^jxcic|CQSI5Qb@N%fL*Te&VBWE;@qE(rt0mH{enIQ5vVCth0edTufe-a}RR}FgAOz5q0s{~$U+RaCR~q~k@kL34p@_9C z4f^h)=F+r+4f2!$-4UQc2E;I!%aM=3r2|}3LfbMRPJ&9@k!r&e^5c^qW2Zo6Q!{UA z8k146R9F^X<^%9o^9K#S=EoGO(R7Om7-&QmL?bQE%fc81!O&_s3|89PL5FTs2p2rvI*96=>m9gFZWw0H!A!j!%=!YVZfY?Hq=^TSe-t1aJlx=NAp!`{CIp!( z3KiI0Oz#OAVppc?*Utyb*1)=K@WR@u&sR=ovy)XSkjX`~t}DY@vK2@p)bksffz=Rf zn~G_)!0?4x}6F>|~f*Em#5I}L7f@<^Jb7m$0 zNQI|SXNLkW3rNPHq#+SjP!O6W{8)MGRGCmTg6$)MQZ$)StFq={Sf=PdG67r&b+> zs>6Mwy> { @@ -71,6 +72,14 @@ public class SessionGroup extends ConcurrentHashMap> find(key).forEach(channel -> channel.writeAndFlush(message)); } + public void write(String key, Message message, Predicate matcher){ + find(key).stream().filter(matcher).forEach(channel -> channel.writeAndFlush(message)); + } + + public void write(Message message){ + this.write(message.getReceiver(),message); + } + public Collection find(String key){ return this.getOrDefault(key,EMPTY_LIST); }