From 2e806d508d9b52004317393c5db19b2a282905cd Mon Sep 17 00:00:00 2001 From: sin365 <353374337@qq.com> Date: Mon, 15 Apr 2024 15:16:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81.NetStandard2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Lib/Net4x/HaoYueNet.ClientNetworkNet4x.dll | Bin 20992 -> 0 bytes Lib/Net4x/HaoYueNet.ServerNetworkNet4x.dll | Bin 24576 -> 0 bytes Lib/Net4x/System.Buffers.dll | Bin 20864 -> 0 bytes Lib/Net4x/System.Memory.dll | Bin 138144 -> 0 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 16768 -> 0 bytes .../HaoYueNet.ClientNetworkNet.Standard2.dll | Bin 0 -> 21504 bytes .../HaoYueNet.ServerNetwork.Standard2.dll | Bin 0 -> 25088 bytes .../NoSugarNet.DataHelper.deps.json | 47 + .../NoSugarNet.DataHelper.dll | Bin 0 -> 5632 bytes .../NoSugarNet.DataHelper.pdb | Bin 0 -> 8016 bytes NoSugarNet.ClientCore.Standard2/App.config | 6 + .../AppNoSugarNet.cs | 84 + .../Common/Helper.cs | 22 + .../Common/ProtoBufHelper.cs | 21 + .../Event/EEvent.cs | 8 + .../Event/EventSystem.cs | 241 ++ .../Manager/AppChat.cs | 30 + .../Manager/AppLocalClient.cs | 337 ++ .../Manager/AppLogin.cs | 38 + .../Manager/LocalClient/LocalListener.cs | 264 ++ .../LocalClient/LocalListener_Source.cs | 292 ++ .../Manager/LocalClient/LocalMsgQueuePool.cs | 55 + .../Manager/LogManager.cs | 48 + .../Manager/UserDataManager.cs | 56 + NoSugarNet.ClientCore.Standard2/NetStatus.cs | 16 + .../Network/NetMsg.cs | 97 + .../Network/NetworkHelper.cs | 125 + .../NoSugarNet.ClientCore.Standard2.csproj | 26 + ...oSugarNet.ClientCore.Standard2.csproj.user | 6 + .../PublishProfiles/FolderProfile.pubxml | 13 + .../PublishProfiles/FolderProfile.pubxml.user | 10 + .../Protobuf/ProtobufNoSugar.cs | 3012 +++++++++++++++++ NoSugarNet.ClientCore/AppNoSugarNet.cs | 29 +- .../Manager/AppLocalClient.cs | 8 +- NoSugarNet.ClientCore/Manager/AppLogin.cs | 4 +- .../Manager/LocalClient/LocalListener.cs | 14 +- .../LocalClient/LocalListener_Source.cs | 14 +- .../Manager/LocalClient/LocalMsgQueuePool.cs | 2 +- NoSugarNet.ClientCore/Manager/LogManager.cs | 23 +- .../Network/NetworkHelper.cs | 8 +- .../NoSugarNet.ClientCore.csproj | 9 +- .../Common/CompressAdapter.cs | 7 +- .../NoSugarNet.DataHelper.csproj | 12 +- .../NoSugarNet.DataHelper.csproj.user | 6 + NoSugarNet.sln | 19 +- NosugarNetForUnity/Assets/MainUI.cs | 41 +- NosugarNetForUnity/Assets/MainUI.prefab | 340 +- .../HaoYueNet.ClientNetworkNet.Standard2.dll | Bin 0 -> 21504 bytes ...ueNet.ClientNetworkNet.Standard2.dll.meta} | 2 +- .../Plugins/HaoYueNet.ClientNetworkNet4x.dll | Bin 20992 -> 0 bytes .../HaoYueNet.ServerNetwork.Standard2.dll | Bin 0 -> 25088 bytes ...aoYueNet.ServerNetwork.Standard2.dll.meta} | 2 +- .../Plugins/HaoYueNet.ServerNetworkNet4x.dll | Bin 24576 -> 0 bytes .../NoSugarNet.ClientCore.Standard2.dll | Bin 0 -> 59904 bytes ... NoSugarNet.ClientCore.Standard2.dll.meta} | 2 +- .../Plugins/NoSugarNet.ClientCoreNet4x.dll | Bin 59392 -> 0 bytes .../Assets/Plugins/NoSugarNet.DataHelper.dll | Bin 0 -> 5632 bytes .../Plugins/NoSugarNet.DataHelper.dll.meta | 33 + .../Assets/Plugins/System.Buffers.dll | Bin 20864 -> 21376 bytes .../Assets/Plugins/System.Memory.dll | Bin 138144 -> 142752 bytes .../Plugins/System.Numerics.Vectors.dll | Bin 0 -> 163712 bytes .../Plugins/System.Numerics.Vectors.dll.meta | 33 + ...System.Runtime.CompilerServices.Unsafe.dll | Bin 16768 -> 16768 bytes .../Assets/Scenes/SampleScene.unity | 16 + Sample/NoSugarNet.ClientCli/Program.cs | 19 +- 65 files changed, 5302 insertions(+), 195 deletions(-) delete mode 100644 Lib/Net4x/HaoYueNet.ClientNetworkNet4x.dll delete mode 100644 Lib/Net4x/HaoYueNet.ServerNetworkNet4x.dll delete mode 100644 Lib/Net4x/System.Buffers.dll delete mode 100644 Lib/Net4x/System.Memory.dll delete mode 100644 Lib/Net4x/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 Lib/NetLib_Standard2/HaoYueNet.ClientNetworkNet.Standard2.dll create mode 100644 Lib/NetLib_Standard2/HaoYueNet.ServerNetwork.Standard2.dll create mode 100644 Lib/NetLib_Standard2/NoSugarNet.DataHelper.deps.json create mode 100644 Lib/NetLib_Standard2/NoSugarNet.DataHelper.dll create mode 100644 Lib/NetLib_Standard2/NoSugarNet.DataHelper.pdb create mode 100644 NoSugarNet.ClientCore.Standard2/App.config create mode 100644 NoSugarNet.ClientCore.Standard2/AppNoSugarNet.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Common/Helper.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Common/ProtoBufHelper.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Event/EEvent.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Event/EventSystem.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Manager/AppChat.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Manager/AppLocalClient.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Manager/AppLogin.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Manager/LocalClient/LocalListener.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Manager/LocalClient/LocalListener_Source.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Manager/LocalClient/LocalMsgQueuePool.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Manager/LogManager.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Manager/UserDataManager.cs create mode 100644 NoSugarNet.ClientCore.Standard2/NetStatus.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Network/NetMsg.cs create mode 100644 NoSugarNet.ClientCore.Standard2/Network/NetworkHelper.cs create mode 100644 NoSugarNet.ClientCore.Standard2/NoSugarNet.ClientCore.Standard2.csproj create mode 100644 NoSugarNet.ClientCore.Standard2/NoSugarNet.ClientCore.Standard2.csproj.user create mode 100644 NoSugarNet.ClientCore.Standard2/Properties/PublishProfiles/FolderProfile.pubxml create mode 100644 NoSugarNet.ClientCore.Standard2/Properties/PublishProfiles/FolderProfile.pubxml.user create mode 100644 NoSugarNet.ClientCore.Standard2/Protobuf/ProtobufNoSugar.cs create mode 100644 NoSugarNet.DataHelper/NoSugarNet.DataHelper.csproj.user create mode 100644 NosugarNetForUnity/Assets/Plugins/HaoYueNet.ClientNetworkNet.Standard2.dll rename NosugarNetForUnity/Assets/Plugins/{HaoYueNet.ClientNetworkNet4x.dll.meta => HaoYueNet.ClientNetworkNet.Standard2.dll.meta} (93%) delete mode 100644 NosugarNetForUnity/Assets/Plugins/HaoYueNet.ClientNetworkNet4x.dll create mode 100644 NosugarNetForUnity/Assets/Plugins/HaoYueNet.ServerNetwork.Standard2.dll rename NosugarNetForUnity/Assets/Plugins/{HaoYueNet.ServerNetworkNet4x.dll.meta => HaoYueNet.ServerNetwork.Standard2.dll.meta} (93%) delete mode 100644 NosugarNetForUnity/Assets/Plugins/HaoYueNet.ServerNetworkNet4x.dll create mode 100644 NosugarNetForUnity/Assets/Plugins/NoSugarNet.ClientCore.Standard2.dll rename NosugarNetForUnity/Assets/Plugins/{NoSugarNet.ClientCoreNet4x.dll.meta => NoSugarNet.ClientCore.Standard2.dll.meta} (93%) delete mode 100644 NosugarNetForUnity/Assets/Plugins/NoSugarNet.ClientCoreNet4x.dll create mode 100644 NosugarNetForUnity/Assets/Plugins/NoSugarNet.DataHelper.dll create mode 100644 NosugarNetForUnity/Assets/Plugins/NoSugarNet.DataHelper.dll.meta create mode 100644 NosugarNetForUnity/Assets/Plugins/System.Numerics.Vectors.dll create mode 100644 NosugarNetForUnity/Assets/Plugins/System.Numerics.Vectors.dll.meta diff --git a/Lib/Net4x/HaoYueNet.ClientNetworkNet4x.dll b/Lib/Net4x/HaoYueNet.ClientNetworkNet4x.dll deleted file mode 100644 index b71c2fd943323bcf8734d14074fadf5d8abb22c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20992 zcmeHvdw5*Mk#C*HoO#KzB->;8J;o0P*%GoWz~*5rOEQvQk|hBa803-WSRQ*cN6d_j zWn)E72ph7&gd`APy@|~(WLYQNC1DeiFR&(reC&o?mH->b2gbg6eHTK=E__MuyCeOmqJ8mn+Q~(G?Pz8w9ZjaAO>Ldg0ViSCOqmi| z>^9xrOteWe=<`2&@u9r7Q*=%=tkn{=fD%yD`Th8g;vU6KR3>Fz+06ut0beI@gU**h zJ3h&*{IBrsqD;c|FFT3axG+i-V<(KijuMrCHWz%W#@Bri9`#HYt^jcEPX4ON+52)p z7GD7n#m$wj-6+WwCE8Jw$!7Y1iEX1Oa7Q=bF1prYxN0(X$^j$WN=I>XTkW`uuC+w# zicl%Ohko&;)cfeBiy^*@NK@pG45!ta)B`EVm+RSbqR>HDV(J+X24mA?`6XdpjO@eh0{mu{FbOdacFXsK?*&~fV|75d=LiTcLNiM~n5!2!@WWvsrS(#KTj zg9|3=8!spNCLsscL0{=ueIccfsnCb6Ow>1CPV}8k?(g-?#{4ogWLjY^z-^Z5>5^)F zX_evZ;gLSaoh4PhBVaH`q1;sd$F%5Ib72nF`VNdO+*zK*qzHwKA*^^U9OaO9+cFeO zB2)YU2NNJPC5XlHOP+pyHT{+cBP;&R3Pgeq7(=?>a+c#ehR9%9k=;%;5dN;g_p*m% ztrE?qsaUH#Pd6xMxh6Yo(0o01KA5XMx1es6ZJssCQ#m50M`T7v9}OeW!)0a_uk~H9 z9Ya%2D%d!+kPe+RmY%#)w|Mr#E#NnoR2xf|Sr$iED|03MXE`gt8LrUYiy$OvP93n= zN(P8V9IX)3tn39SXDoQnXL-Q)H_qtdBlU8U#mhm>A?$0;T9m+$*L$4xnxBCyHA`Tu0Sunr zw+ebi0;c?*0twl{9j}?rjWA?p_~g10x9v(j6V_-jP&8io&Y<_M?++AOh)4^O@JaGl zNestO(euyKI-Y-XYBj>QTyBpR!OSzp<0(_}@mME}qLMK<30WtDOZC{fTtGDDJi%8m zNI|7TC-hM+eFW_0*=3+ZWO|Dxiy9a=i1UI*9xRUGVHt1ka8V3LFy$D|RKy&FvxzZh zyqv_GNyvc(^9xh1SRWc=eN2Tutj&q~#>R4tVcbJ%utJs{apT~0nz~5MS;TU7j~mNBrmUCATeU%##Bz{ZD+=!%8fT4i zSd2)7j7W4;;Ttipc7CwnYjJi4)D=C(2|iXcg5&ySCc!RPmlrz|L&NUCH~)!{Lc zpgzvIG@)mabD?Nj3%qYdUhR}I>?BAfZ+%Nu96e`D@`P>tvg;na@ zGYxHG&GKDtJZHxK0``Wm)q);QOWqj)dmiZI@hHkmNSqu;nTj}yt;)nWI$loV=p^L8 z0)4QcSRWc=eN2TuWSfcl#>A)} z&oS}mkjFl25;?F0yEWGQ>Lb#{YBc7hzypj)2AmR^W+F$v8=2+{9!{2<-Lud4&6ws} z77CV|u~u|5PcQe?`O1AWR<6`V*h`n(l6&+~H4s!SNw!^e&HL}aU+$aTJ=NBs?AAVXWG#XU~T{2Qh_AH>GnY zi&FXmptDA!fDthuBDz#c=Rl8v<2;&#of^+)bzZt2N=DGKIf_YOj?{9g4!}DoVas9q z_?*OriTTqUb53F&_wf^QCR}MPg<9;Biq1!8I~TDfN=qR{ZU^lQDU#K=DN>5#Q)K4& znNy=uQ4eV^8#1CFU^uc8AfF9|{GNryI3^o1IiC$xS=ORDK&jS|7{GEL1d;#FEtz;^ zDzHU_ZQS|jH@~5Cd0ve@A4xYqYF=xD5t7%sxiGoBc2=2uUh6HIBQhrp_k4tL=4Vuh z>G}NhoG*4WG;@a9jBnmks%Kv~8zG)v08bU=Cj=mlr%XjWEj?2_9WN*GbP{qn8$lnI zSg}3?EY`bedFas-z4O4HiAB$2}S*b@vM)j(1&fo#C$PcPV`Me4x4}ITQyc6 zjAwmJg+6Q& z7RF9KA8|}a(vi^4K=M&HduoJ(JgWFh%AAi1(Lc6@nJ!e5%5WZF45^4m&O1_aKZ^1X zkJYSEZXzNIBht3YKO9=CI@BYWh&+fnoOBQq@EZh=H{zX&8KxI8B6w2oa&TPn5t<+z z1Ip){hm+evmYfm8{)okoEG_?RJqFE|f3EsABYx)NUWEKrj~jX<)`nuIsaL9kPd}Wj z?5^yVX140HeeDrnI|MMhU7MzRHs!b31(VpGt5J{RX}KQT3Yieh#T?x>ds`&DB-Q~+ zi8MV0k7xaXyd@}X3tOOoTiJ%fwy*&TgcXHb2?wh_XNrZ&KF@x=(rk~Io}ueHH>}e* zo8!WUm-g1z)Yh!5UAY27L*$cZ6ZNx*7L5=c#rN7U%AL7PGTonLj#JoA)d{ z2lCS+ax?phfA5f=5uhel{x|#Vfvo&gk@2y z$*@Y`cLd%d@XG>U7M_QUX=vdy0;dT59peh0MHdEdvqE%l@O9KKr?r|zHyCw+5X}u; z6SU|(>o&9;w}x@#iiDY`+hEGekh18Mk7cug*TMgF|A{~;`o@&I11CTsgXwSU4F7xJ z8n~%e+Wd~RN!EjC?G68hzK!&}MN~mw*F$~_PmkD!UeVI4T?h;R-DF)k*kDl~G+Oku z&TwsrYp(@Qh@uv2`B&(Ig(0q8Dwcc-R$278Unl}kqZY0uECyUWUo?!wfWA?0@UR-e zrcxyx!b8+2=~$=%Jv(1Gmm7@Dr#iuA3RZ)kP<0H|IzLgIE~Z|=s$FcSVEk(q*XWf|a9>jQzD>o$w=L#{_%Zwd{WQo(8Uet&LnVM|tIUYdLTx(AAKtP?U-eglf1|Xt7|oPykqfY84iENZV|LXqSsU4lGPZUCi)x z8YT3Si$D8+IcfSpTCE_QS1vqp^gffd)?0qi__STOb=qCdT?>fk}fPP=vQz|Jaq*TvX_ z%jjl4hQinE!R7Qt7rP_4P^+ddD@^=ZOEnDX_-^m7+uUtdC%*kP&Jy3e?TQi8Fs zzhqoWpHUcmeZR4WzVBj>1G}8wb+KpYxUrV%u_t1modniEDHmH~JZ!9^zjd(mq+rUQ8|kYq=d;1@8yjgcZ~riUJa^k@8_pPce{LoI zjg$59+}%pwbusp52mRK?cf^iikTn|# zV;jBTVjF;UQwffY?4^gaQ^qya zJ}%;Yu3J#Ip7PiawB!2ahV9n zxy%?j*=$0)(l_LBvcA0@#&W}Bp_}S`Vu;k5IzJ-lj{$ofOnIGaSWyuY&$8df4r?uxYcu%K=I$Ky6ah-kxn+@VxjeaSxm=nta zQp!JtvLRCD2TEzA_&>P)2gPFyKg^QCjQTLn=VWy-{4h?oO+RZd)XZmirglCRV2?4> zX^)KBOPB*DeFJ4pC^|94a4F|&x^U{CyyVxxsd`l0Lb0qW7fUJr;?c2X_7=~X@f1@= z%6Ha2{{QjSpVsCN9<|B$=cYII!%djzKxLRO?z*d1<1$GOJ z1J1zja?E*yz+r)h&+#$*zk!d_YVEbqVU!P8N5S8TlX3|~ zM5CpDg<7>Y^l#Eu?KArKP(H`^O?ue1XSVMv6xa3`0qtRWEmWq(wbRxNz_0mcXop;$ z)uDyjtyB?S3QF9!OiOB3@Ocld$fCE>xuKkPjN+mFX!HEwh;~{uo+h951MNX+`84g)cv_(5 zmo^2i6}Us-sKBEFPY66EkOIOVVz^e|4uPWrj|w~?@RUFbGv{ph@Fw~iy+HqieoODs zY^_JTMf-wwpY{*hS2BdU>sC+I%B-)!M8 z90*UR@aqGf(nSG(kJ&?bN*4osO5>yOFYr`>@Fa|nn|Fu!81|I5N$4#?Zx?zO;B&rh zLfH=Zl(qx#?oa|x$^(e?WzeRh6hf>o!>ln;##%*r3SfXrahKtFF>@~f7yl7Y2<3&~ zDx-4%1GETSWwcm$m!MRJ=fY*6ug3G{GCaGiK=~4yj`F2|0lEwi@ylopV1O>iGovzE z3mBlScvrj(C+OKIcjA|qGU@^h(3N-+Tt-&`2Jjn56y%v?Z%NI77<`)}u@n8t$Fsv!T zJq33u?y2Ha6EWI^4}4gSKJ?#*-=2KvyM^a!{KSl-w?&O~1b@@?Ebdovzk&OI;l5pK zqrb*|9QU_z{{r{hxHY|vrsCd#JB|A$+@DqkU)q{Z=GOG~^sK1usioHD^w5BviT9@L z9V@7FFrLO&m(!Zgt*oP_WM3}nq~n?49d&eLCYiIZM8%2=!Qd7y-RvZWQuZ2Z8A|8u z%oaP>(^=O@jhmbBgH7W=0HYmc3vEF99DX7475t!+-l2eT-U3TA| zD+i&;&LuG%9-r!=>#TxYTe?7M%@)dvy(tM}#l6K6W2l{WIzj7_0Bm7vmYv<7afUz` zuyebd1a+p8eKui0Z*($yTI|%IooRG3c2B1>l^8N;o$etUEH#a(q@B*W%r$Mf zU3Nw|CW>!LViv$%Qr+kb48}8d^S-`a@pQjU&FMsIdatv`rge6IGVPWNGnD#aY)d?y zNZEu=XB~WZvZHftgFF;l;sZ8a&GU3qGR-Ulz5LytadJ+dlj<5C%=4?FnvvYCu^nx% zYoACIiaQ=DCu`@&5Mv?e=Al$B*@vm!#8CssGv*}hCt{9mY4ofe4>I~Ct2rEH--uNXs< z80yPStY~xwhcn6kU1zMqtVs_SWI7OguxeN*^z*Oi(ik3xsREu;t>Lv;BxT(1L0^-Jjd#+T2tW8w)~Xs14cSbRWmhUMy+q%NMd( z@SCtys4Je`qZU1fDforDIO0gqVyt*QZL;^;sk1F}m|DNDCXq^!7eUuKPKq|eeVJkS zz>W_fm=qzrdRvhLlzJ|xoIso7`#2!ArW5wQEkgs0ci4M9RK*NxkZ|jH-rng3VA^O8 z7s9bL-tJ_RJX_g;#T_Dq8e66+Ir)YVDsG_06rw&vVL^t4)(!34iIO)<*u^UFFwqOR zMI?>^1yqe=0WSpKJk1UL&3h3z^R%`!CPUkhhxhE_TqNUz*ofgm$mYzs*Um7)KErIo zC<1BDWSk7u^yLJ~*JcNq9;i1y*&Kva&}&M@`_oPq5i6S~<>#_Y1!s`kMGBZuosVZ; zy^33y`W(}XN@=| zORenE82T_Szo+bz}7pN0Wh}p z?nbsJM}4{Dk6D93XC%j!1%3IEk$&^`g*Q^l1~`p)sKbr!$9H$}Z)3DU$6D3PsyI!DWO7xkkl4 zHP;Ja%*D^LtB`ObR!dxv($&e_E`{a81)^_5CKDg#MaqNIfjKrz#Q{=LU@T&DI*Z95 z2D@`+eS9F98m5NyFyR%WzCE0U^5d%F8d2+IIG?Pcc^yCOj&yDzn{sp`qDclP;TB*i z8U)N>zs@upe>cAgXY(w$Y)VVbX4E85(t_EoZ{B(G_WS#^S@&IgQSV#(xm?!!<&G$w zZgY0bem_dujACtDKlaMVs$Ea^XywdV+wscn;r*@DjNy_wxSQtKZuHvrbiC2f7w6w4qIic)GSE%GRtY{8J4XymT@`L50hfJ$t^ppOmuHh?SfwN-tRv*y0 zl?u5nd=sp%Jm1@S(}kThSbTk^p_~T(P*e z0w1=jmTg?lAI6q5R?i>C>KR+bAI4VsfwA>$#1v)Fi>6^k@OJGVsLkamXt4;^_#@lK-j0s?<0O$GU`Fw=F z`2_|7-`cK78MxTg0*bDLcy7*B3YJAsP@ z@_zxK1)@H^G@$Enkd6XZxB|7pv|M1lz*T;{q{VKx&@lQe#7zQQ1hxz8;_A5-!~Up= zS*6Py4&>Rl3CnhYI|L?zQKQ1HXs$>q6YX%+WPF|vlmOS2q99BKk`5BO2R=v%S)+!BLVV5V_qV$A$kmzn z;1(zC?F*67oEx(m_;lf0qEYmNGE)7%`h9qWoSFBvIYA4>1#S60<`B&h5S$v2#Yc#iJ zOLLcZZd>l2GA_eAwHMUjhm@|;>0Tvvn1iYKFdu=ZvsBcpi3+zVCQ6^^s**R~;1YL{ z-*xE13l?4cP_XDKD=KrbqqC_~@8~|Z;bU)X_~!4ner?Nh;o00|)5Y68|7_=NZ?d;Q z82eyAQuuc4p|;~pXveem2Qt{rv5Xu6cClVeb0esA}vY} zQWT#$*jtC4DB+z+9*06ZYQ%ZJJb-q2mz^IK!du+juQpc)k2q`2&mP9q2>mJgr+nBB zUA%iA!r1ayMFFXY^&k#sDNJ(?qC zM#e%`R^EWWIN_NMB-teaHss-ZNiN|d3oL<{ye=fd`T9vN%%;( ze^sA($+9uY-u>>qyGJ^8x~jXXtGlbKyZRid^V-|VAR-g@+iw#+iYH%90?!U6ksUh! zuS4{(|Jw^5)jGbtpm%>F6B|i8L+SW%Y#^RWIoVjh9ZQdi5e zuITPIq7KcV2kPItCs*6cbV004YarSViceAhIg4iu_attj3Q6lqZzfm__&SLjbiNGQ zdlMJs-@?;HnS|>u$nE09BvB1_!qn?tq9ABL$q=obns+ulmRDU$`G9XKDqo+q4|9`# z(F=e)X{)O@Fu7txd+XDg^Z+o?Z4wD?=nmXPR}+S-K5Zu*6l7iLUfe9}J-CamCZhF4 zs3gD1O5kGMbn?(7O6+eW(uDf%L1lx7+Fdr?SX8~ELW{wy$lUXtyG!u-15+vISDa3o z#iZI>OE{y+Ai6Bmn{}T@fS!0!CaBBmsga zN00;v=xLuoDp5Y#c)p>Ja|vA$t5~UV7U;}G za_M>{Ns;>WajtQ>9<9xDi3$Y<)LfwK5CyAiQ%bnuL?P0t1~96kQK_JIbFNL9S)fm# zC(K&tIj2FFd4nMd8_UYlc#dSwLx~&oaV`^xmRS+4W;Q5_U^sJ-J{9oRSys(lB!5t= zp@(&pP0^^ak>?~>v7b$5A6AWho*o(C|V_RT{I!8Xt zAk>F0DXtImhU;T0>cfzpUf)zcsqY;4FhNltdat-X%r35vsi+S_d3t?Q`J}#c;KO7` zeHek_`Y=1WKBl5R4D;#rP34pN-huBh#)B{Y{1p@E3R6FC0vf`5)L<|sV9};KAEOhP zL?&zi9)W!fya67@wX?1@Ge}z#n9In{fW?}?#LTBLB{{u`>6ns88yQ$lU;t#!!E)B$sr0azKBndQ_YshBPHCe~to zoHei<*s0~M-cjb&$64(ak3@rih%jz~66UMk5%lGR>FIA{=GL^KlG-`&rxR!g97|ZQ zxfmqfaFzqFo||dFV*=jHH0vVzI45GfMVejhG>YO(F`O0ow36?vWI|QVB`hobB5G2+ z&MMHI)c`eX7;yE~fm5Ev(ZDGv0v*^t@pb4BdC{Y1TvzxNNCwez8CUO`xB_-dw5m!h+;gh9$>Ox2R*xNQxE zRQXDjhn4aEC2TmbmcS_HrXJ9(8uTXyg&Pb7xKH|BxoU1NT4pR>Y8lRPRSbP=DXk^L zJJS%=NhwiX=qg2Ur2R*Dj?`RSi814%C947tqT#flY>tly&~REonP#2vQ%z%G&BOSdT`o+D8=w?q!OjMz zln925+&Z{qML{-<^K7!6jd_)wO=r?IwnWL}vBWU2QD7|FQ9NMHuD7gt^)r^vR#V)N zDUQzLDe5BWS9m?W3dL_wYYpm@%UCu?97%;{z>~nfi#*9vuTkY(Ey~Hbbs&i@P*bxL z$TBZ%2UEbpLTIW4kI_#d8T*g0u7-Xyvl&ho9!@vFC0|6oQq_rpIbexRE-NeYT#A%s zGsWtuc;OB$Z_O4KgIR0k$Sl&qWGo?MVRV|am9spYrH`{CcQ9)>jfd&L`B}QR22P{I zrmMYT)2dF(>469|)2e~tS>gr^rx&!?kD=R2tri`?&Peti+@a4upPQqm_;5@`cg{&; z0*12<+|hL(L0Ki~(wmXA91N&c77cnMx@_1K!Em;twAvFYPUjjBbW3GBJAl-{zFjwC`l*1g4!wx(3H-nk-(jdWR-h%^#-%)_E0B=J)@mrJQyul+ zs_c*3_~@gmjW?(U)cITv?hN)MdQB5xE%r3bsch9OvDLuR3K$GmSBod+o>iOvtd_G- zUjHy$;;$eQ)5k)S%^J7?c9Y@<{t8c&fgiv|3>$O!HYBN2-^5es~*7V#m$J zs&`EAW9deipOnFbfccGI1S0&gHNFUm8h9UTX~e~>@x@GoSFx%Br$USM^h(`b-%jPE zaJA8f|C+0$Pb$&Vf0i#eqfGaz)rl9TQ-nrvzY<+cYaI%~Ml{Ag{b`zkiH5bwq>llI znTCxzI9YZ#b>*&8-G!lBrq!Zyp5MF+wxW&AE*1k8fX}Pvk#`w*23s{_$Wa8#+07z? zibbvArX3Cn}4w?R-xF5OU_h8QS6+fKoI z7_#I@7v$HeXp{on2i)#Yf%{#wd&4`m+l-pGCM1eFOXJr}(|B`&2YylX9Q$DW&O#qF zxP5@O=e>^Fo2zBhFrAyYPuZHD$r}l|J|svp7f^`p;3~D@U9?PJTx&SDfTgxR_9%Sc zBsQ=db4Ykx6i~ef<2q5pc@j_YTtP|95vG-_l}s?4Jt#kA0n4plxj2sZ8cQJu-ttUx zoV^fp4lxwh>BLc%V<FS%xC-t2J-z=#Q zUbnb?5XSW}74`Y1t8Xfw)b|d2hut~AG1L;sMhpdW%*9X_b5b4dL?>1=VoWUKhdBYy zRT@JfV93W!SeNo?Y+X5>#k81MC22Q?S_5QC48<~vV<@(>(imz##GE09V&;4d#Tt~v zP^|XU80uVwaT7{nC?(8|p&Xv@>=U0yUj}&WYA}1I#!!urAu$vuN@FOd*Fjx z7efuOEH{SY+^I1XSFdMKDlmaX9Lx;g3twO+ok36)0h`9_P%vYI;_S%>^M6Wj?4JTaoHVE zme=YUHs*iVxC|>a$7OJkP@ps}W6zL_%RZ)x?d6APosY{{^>>KNc;4mWGM+O|6Z&E? zw-<{sQAu3J6Sg=mQ~0!T8E2KOHQdj+xJ>c+pxnET%g!LTjg{8N3xfZUxNKV4Zd}HB ze{@{NZX+L;@w9(;aT(@Yk#{PJ%VgX-R2Q&m8%`$>iOVn}Ra_>C(zr~9elxS39+$DI zP7KWdK5-c@4!O9DSBP9(hP_FNO(QO2n?5ZrgU>lbT*eM=nz+oOhc%+};7`?ANNHSl z8}i(^>_#NtU0miyWjoQavkzRkAkXh4Kq;RsuNo@h@k0q{PT2uzYfv`Uuh`KaxTO#c5t4SfDXhk_;|A9V^j;UK@&39ve&rfCer1oV*I;1aci$;~W%W3I#ZosVe)V9r$j7hPl}r5koaeca$wSL) z${f7Q`wGe+hQq!Zs}L4g-o-fABcEf~Ji;;TU!WwyOD={OmLE%d5CBS=Ocz?%o@k(8(@>bX3odZmc+BXEOR`YuQl3mPp-l~snCsQrC=c#RD5Vp zE}m^2FT}GCJ(P=y&Mls0zgUQ81&c}J&NZH8mO?zsZOLRH0P!q$1L9fkBxjV{I!zO% ziDx~8^8&dL&w4O=+;0f$&|u}LR7ksvra!&AFn$}+jyc>8eLU~6 z5m{HS^qA2*>Xwrk;q&o7fnxeN$4ash@fnuaxsy95AL`}|M%6KkVr%oUE_P*LlUVoT z;88IwWXW~r{wp31OklSBl2OU+XJ*sPHF*yBbx#hKC==tp&;=es8QKR3TBEB{|WCCB?KNdny$?0%ogv z2VU|NHmg@|dHe0RbLRlO8=vMJ0DOUo7S79`1EAgTGfXSln=!#~u0#2AJO`M6W;sq8 zV$R_lfa`QJD9h&nf@B%ls=pV$*^CNw&urKSn=}&xbUxdj>8TkO0ooe1YRVCKv8ssnFzN&#k#~J;t2?L7F-VrTZ zRC5@VpolK_Mg3l1P7@?{lv$vlw9*ZU9c2b6U{(~CQs%GykSQ7}{qp+jv&`V3{u(A>H4ZoqrQbd0@i|9hMpa~lya|Y5q*>oZ`gyA7-Mcnff z^xK8odZ-Sj#$myQ8@IK$;(0mnIt%#vq|?uZaiOSo&Ah+z`vXAU)K>B$i0+qnHr04y ztmz)yU&oC;knf__;fa2dwHsjpd2wTVL>zMYaWg;U@_Rb>bETbLrlHR%>A?pM^rFCf z%~u06Xbp;4^t4&!x2Vg*utDHSfj0~Ml)#sy%){od0~UQqV5QLCG(TurG#Xs)3()bh z>Yzo}G4tPd^7-V%`AWc0b=qicpn$8-FiP8Yi;qyZarvGvFcQPRb_ zkr$#-g+a=9F>61rF#0F>(J(#eVlVkWqlIbN1=1q=rvC{eLhT9zpN2OMd)>TWS&zUT zA9k@5{)dd2^p?VWPnO5vBm5UCDG#BBnG{u+NSR4>Zr-n~CyXdfy4VT-SB+|VT45rk znqF}8SV}ehNU)SvokxQ%7O`G2X4Bm+ z76Uei{?5hj)Bcw+mx7DbXg&;V9<{pI=dGU^^XZ6-Jr3-AdRSr7pD|jyShaRpxkc!P zixl>Y^4EfbqjWs?(w~8)X-;L>;Yg)cr%FWD18auy_R}iY_RMJqn17@*fDyw{0U0_WLk-JS-YO$%uBA6z?90fzl$uZp*ZwW50=tSH!PHE> zg7ye@41I0U6*QE`G+;**h8_ESa~*xn#oqEPG_Ry!Bg;G{wsa+(r!Zn$x{?+Prflg- zTJDx)TWX@UF1F2BVm8r;i=}`y(`Q{QVl6k<)5|Uv1J**baKOg(-KVWKTdCW{9tPG% z?{~4!TbG#|=%kB14s0X+Mqy%0o9GB{cros5OIJ}VVqM1Amad{zs};t!)Iq;+F}9@+ ziml;1WlNp3$;H@~Hq+CBDO>8IpSXE!OWo9TvEpM}+Cq1`7~9fT`l*YtEp4R+#6heJ z+fom`Pq3rJw$w{EyBOQjcKWdFLzOLEL-$^$YG7O1K_^{|ZK;obBN*FKv$>PzB2wfw zur2K&-xUgDTiQb>UFu2gw!O9!aQ#ggcWgY;1s zyFuG#CTV9AmsEC^q9MVQou$ahV;ZICMum}S?KT~H*2UiP445NS)l9gQosG}}g^8Vw zP`zMx(PY_vlx)poDf2qo?_v+pVRMu|<6KndUH@_8qWe>VSH9=qRo-FzsIG2bI4e2?byxP5<}$GClu z=P~AcvV`x;`8;mlQ+bTr_mw=xd|wBq(IJatp~dCg3)s3(OHuT5hi!}-h-2&1+n$;>SBKwXuEzrf zuG9NOjZSe77x&U9#BvyxO5@qhev#=c-;nQ`G{RA{l+>kOjvbY@#S)5nRl1l|P@uKGl2RiKzsujh;!a``{DEq>yie;Ck0tp7IwoP_{ZP@}+01U3t77q~@W zpTIcaOiD=lI)P&X?*O#0$}@aSV9)RkHTZmGX0?%v{NxE4gzew_WpNecYmb!1xfgYfaWM?9Ex9 zX8^y8cTJo=E^rm#>qviB`z_%0K2y7oei$m(PJmts*yN7^zN9Y&{Ju}a8OkTh8?~eK zDQk^(T8S|cb|XtyEVWHFs#owR77z~iL*@7C^k0ZG^!x(N3q7X2Lcc>4e1fV_<~V&J@KwM*Ek?)b%l_xI$F!a1 z5{%RXAx^LK|2?3`%kWL>`{4RBjpYZx+loHHT*NM^5fHm@Kpv4+(QN^=vYDQ4?;aj)`T6y_Qq&u~l^q98T|9wba?6vjBw6)r>{+xCZjp~ol3((|6?dPE*dL4S> zFZ2$nt3&GQkh(ggt`4c|Ic*a?tG}YXf%4C3JIj73@W;B3cG17+I^9CQM*5_rmubJ& z>v0ZQ=cz}GyBcr~^#Wc%&Q5E30xqsN#I_AlLGG*cv9fY0%JP!HVND- za8jUVGJS!-W`S{m_X<2I@MVGI;gT_dO#=4{oD{gg%el=0;{uNgeA&-*3J9;jCV_he zP71tN;7Nh&sF#NDcX<$bJ{c7OWHqbztTuA*XQU<^o#W^ z`f>es{Vx54{;>X({tf+k-3$K~;J?ViX;u^9MOG`|;~0CwxlsooPPv5MEA$;g-vzI( zfy<9G(E!e+%a95pRSt;F5l)14h#WD!fL3`B@K;6{@Lqouu*x?Z@ROnQ0ec1hZ8@hE z^oK5-Chf!dr;hW^#elpfs`?F_dtU^s0%zhT=oWO+ppOUiCBP~W&0C=RK+~Y37pbMV zE8s1Bp!4apCffV(*SG=Dy8-!cOUghm2lU~5HwgMxKpkx>2Ym*h4|W>@y%$i2cb@@z z1kgv@K*eb*ZXI(W40;uyjyGzRfD3Szqr(GLgMJ~PPFG`9&}lPfjD}O(IY?iRH}JFZ z{qtV>AM`4{M%%QXY4_>oB(Fuq*CKSaSw#3J{T~G@rKwZua>!*(XW*_tKZJ2da9854 zLYrse#;3;6C;%<)!TmYhkK=v@cU14Bg}7JXZo-ZN*OpOx)ZW`jJ=yrcK|I?I*{STN zcxo_dr-61PGFd!&o%U3AZ??00dRDYhOJ^(Isk96a0=8}4+S1k9Mm=MhtUX-c-c?k#WknBV;&z;x2M3+h z`mwB?+0z=&#%X;#V@skXZO5~A_rW2-np5%QSSFFl;hXGuI@^yDl8e869%Sa>%z%?l zCi-(#wm8Y8EiK8^Z?sc(Ix#>!c51LWGnN{lt@ePOIAklNd0@aE$*Qz7lIeAtll+I$ zTkZHD>quz6od)HgJxCcewk;L!Pa-{pw5Z>kj;AvF>~tE$_~784wq$%HgLKP&d*I-< z5$I=U6T@~opTV3hPAUZjU6!s?YXU9Ek<#|CbI9H^h1%W)uHliSo#QHCstq!-&FP_{ zVwb!1^g@Ak2lwn*4;#Rnu?-13IY^gpMLpSR=)<6=$M6!(jt`&CwJl?(+f)0T({tLp z(P3#jlQ})BhdVGk4IP8ho*J|dpPseVJ~Vw!ciI_1B|M(AJ^?UnXZPcC&R*xBow_EG z-QSrR+SB8VrUz`;s;%gtbvsV7gg!9R1550&(}yrRMGP#t6E(z#Y_XcW&E<$Z%w4IL zWCBxZ^XPEDoo?A5PoZ>v0b0T`8MTeSZQ^^j_8(aFV@aBWRrri%QzV z@sa&b+J@;TZA?aLNjiW^ADcQyli9>TJdrG^fi{{Dc_#hgPK3I^_ z8&6}VZNPt;u&;NDGjco|px|~pok5otxN@23!hMOM(R7@9{PgTrJ2Q|@$Z!-gRilLi zeHcG1sZ1e1CmTaBI69C$J)^}L8A~UI_D`Dy>q(6jc(%g*V*I&I)YG3xCbC7j?3t+5 zzK)$gwWZYaP&^4t8L#UD3l^IrxU(yV@^~I%!xophesmu^T~Fc$n}+wK?L#Gae<2ge zoGb3#4>vLhr;{VNir2ec&pEx0dSmbEhBc)F-(Ke@lZ$taX5Ca=e0I*?l}vmr1w+(5 zn%OUg*3>2eQDbk z52$cBwGl2joO`gFaw+a;305pwI-%H|OAAW~yc)G*nI=r;VRwvB$8h|x>qX$;s55?; zYZGl;Jm;PnP2pxayfjForJ4e^hqo1~17!dTIan|Xh_bZ;-U2_AE})}%=~?br*}CAt zW7maQlR#43nN-m=Vyn5U>;QhNKymjaTkU=BCPB({JDCJecF{eLz;ud7p0K`-4vX7Q zCgIAlbzqhpwLrv8bz_7X3k`A!m~+Zn+g4M19rJgkaoDX%6O zZGbtr$&Gf_O+h_3)t*Y^lEZuYWh#=&>WrtblBF@Iik!o{Qm)xxEs483LYi(_E99y9 zSHKI~mK@F9{fHgsXnXearcI_3d=cgomhCL83(GDey~XRWv{?0cTRM%;vC!5w*cXo` zu=)W7<?k)f=U zjVEQZhfahtD#@e3``6rpS!8`V*MypE*{QPJRJ3PkDv49u%9&9Q@Si>?rz1+D7 zTgxji{h5*e%5S{HqzV{Yo4X~W{;f79P!4muOq`b}mQizlv+QQne$pOPyBN+IkiAX@ zyNJ|4JX^G%&+m<>zmV+eKY-0GIqFfUt7vdVQ`IMwL=0l5T!j5huD5vbWj5!X06eH$ zPIf0sL6;(}m6gFIus2stDJG0&ovk*qM47IA`#9;S2hSmDI}Fe+)uJ4BJy?k3A>j}# zNo|Z&)mUQ(uuj1tAW+DqSdo@d1O!a&Zc7bzI|(G2%q}i#mykLfEJJw;B8?(UBso~= z^Fz=gn7c@;#&Kwu&K9SoDy1ODchc8IXeUkb6h|8@cSTCE?>G+uHUk<>=c$*vN<(dN*MS%roaFDlASldV91K1OB4BXd__X*gt;H)Y}aT>&rjXMUaBa|3o zXU=yhjqk2{Ku-flT#4KPJX82_K#k#lOW1%Z8pW4~NuulCS#l3J2XIzqgTEOXjDdTA z+UO7{DWSp5gWipD4rIPVjb-z;eycCqbMwv@4r<=#4%PKuO4{Vtw?bGFcN~JStv|;q zV|ce5!_mlo@WjB++}ucqMnFje&*D(qftsw8gYFoSTDUX0`&3TW<<9`mH8h695thbX zr8+K-GaamsIun@d~xxA>IbjzS1-T`)4Tnl@)0{V@Z;mR z51n`C&p)Wmpgqfb|9t1a+F#xC`YoOwd`&lR^Y{Mp<1e?~vEkcK#D8#QhRm3z`HUE8 z9wfqHMnepA&&)_%a(rftkCtMFHqYbpaj{CWI5V=_@6}ZT-^JP^G(zLnwPZlmU zvRf5w%N1#CjcDMv? z?p(u*CdVi|`Gp`_ibr_zi{Z(~0)jjdo_q?qnikoD&WLP5e}z1xhe9DV$2T)P2Jw-g z51)D=$-N^K3k>1OXHZx-y(odiTn}l!3hqQ5#bR0|O5;Bi<wcTZ`d7a>K6e=dF7AxT(Y2Yh+mSJcbqN#JvUg zHp2?{>DF8%ck7nV61(+zT|0N5ZOE;_Jq!0j+_oS2%HX&J8yTogxLa{=!rg&8s9QSQ zp!Bk7MJDe6u>p5C?q1wGaPQJBZ>~_Cm(*M{ps0+0C!0baC)Jqm7OH}6Yy@q1?FMsZ z4cH1LA!V8bwhG)Nu)~V!dgMA~&OwYChHD#W+T2JRn_py`3>e7hKpxW=R}hnAx4>S3 zI|T0X$4s#J(EXAMdNBknW^QEiPAO5x>~$CfOg(%d3dlu#_}3~PPT+e!3{Qm@KSJev z*&)k16Ra6{|r(2WBPHZ358w1;xa~hTV_994` z+PqS6|KTzIO9rA@*s7Iwh58E}SmtSTF30aEcOd6k_`KZptO4`K+qWKk{kR>w;jKuu z+pjS;zhvI&mbB0PoN=l6+F8fpR~q5FMZo@J^8XqXo4M z<45iC<&Tk&cR^9!2sBI~9@va0m&;vADV5W_6*(Dfn^}*M{Dz#%ZUUb}eTYSD$l&;b z-_rBOonwo%OS@jS*#}*075-{TmE{!vh6HX;%eQU2@MTaFZ|(VNgv^HgO=#f)l;_^$ zARvur9Q{{l!5^wqJpurUs8Hu7yz$iV)h}Kyh;;7B5%d%Hzz~8Bp75vBVsru%I7Ta= z?+Rk;!hduvk)uYOW4~d@O(Q1DjSAuGS#DRCTL+Igw<|XWjHwa&w`kv>jBhvUa?t8g zjBU242mfuxb(M^3X&qBXck0-#6&{XJIV2m#SSQizG0Y?$>4H^EAKtTmDBmp9jU=jp$RY1kIc16SnHe~JH zb*<})eb=`3UQkzEU3>R;<|aX0-F@%-|9{`-z2E!%E}OY?&YU@O=FFKhXHMcK^q+

5mFHX{C*OKP56%`Z|Zb5-I(zC^50C^h_S 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 Wka#V4bE$fwsq#wND*6(E(EkB{hg8A< diff --git a/Lib/Net4x/System.Memory.dll b/Lib/Net4x/System.Memory.dll deleted file mode 100644 index 31486d69ac2f0a18a2b976cb8795a1521410e2af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138144 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 diff --git a/Lib/NetLib_Standard2/HaoYueNet.ClientNetworkNet.Standard2.dll b/Lib/NetLib_Standard2/HaoYueNet.ClientNetworkNet.Standard2.dll new file mode 100644 index 0000000000000000000000000000000000000000..c3c4a9054b8382903afa0146193f59e88d636096 GIT binary patch literal 21504 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 TRge5O^$%*vzbpR(c;Np4%$%eVUu%E! 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 literal 0 HcmV?d00001 diff --git a/Lib/NetLib_Standard2/NoSugarNet.DataHelper.deps.json b/Lib/NetLib_Standard2/NoSugarNet.DataHelper.deps.json new file mode 100644 index 0000000..eb9bf4e --- /dev/null +++ b/Lib/NetLib_Standard2/NoSugarNet.DataHelper.deps.json @@ -0,0 +1,47 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "NoSugarNet.DataHelper/1.0.0": { + "dependencies": { + "NETStandard.Library": "2.0.3" + }, + "runtime": { + "NoSugarNet.DataHelper.dll": {} + } + }, + "Microsoft.NETCore.Platforms/1.1.0": {}, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + } + } + }, + "libraries": { + "NoSugarNet.DataHelper/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "path": "microsoft.netcore.platforms/1.1.0", + "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/Lib/NetLib_Standard2/NoSugarNet.DataHelper.dll b/Lib/NetLib_Standard2/NoSugarNet.DataHelper.dll new file mode 100644 index 0000000000000000000000000000000000000000..46e383291a109563761d19e5a36be02a5dab1330 GIT binary patch literal 5632 zcmeHLYit}>6+Sb&JGerD^$5@u<}HACV9x5>iXliUL&?L4*3Us%XSZ6+#sV!4E(x;X8L`*Bd7^ zgrBH)eb1cNJ@=e*&%JZU6UUyW01*YzZ`>ey1y6260)8}DfVg?rN%v#r(W4Q+^MUjr%7?;w6|?3+v>dS@HabIXV%!M%I1 zMQ(2*igq0Lp7Oe{!wG5E+Q4&3jeM_WMiFl@OH{CK!M^Zc6TSG0oYV)lm zbx#csQ_rA>*J9n5erTWMuOipP>AqN3thcMTdk_TH*#zX8+VMryHEOENc-pm%Qo&)3 zH^Rs%o;zmJbQL(4+>Y^?R1(j3K)-<`?$~EqS5mwq(BDV~|0hxza9Y470Xqb| zDByd<((}X?{v=JZW`N=I#BfGts0q%nyaqPo@-cA!E;PplXMmWqANuSS=a4;wZ&C}{ z6b|&)sb63grl1Jfcj0e8@E}Q0eqO#H591^XLEb_yf*QqaA$k$i*1!b}3FDk#*?pi! zK}7{M;8RU>Fa1N#0e&bINKv-ZDLS-}p(3CJDAAU{=V)4G@4mABGCY>(NS&&HD%Ytb zs4vwimOWLcJ`d`r9z}Zt3-JGKpBe>);t=i45X-nOxV;%-S%|KyOua9$OrhWS6wAW& zdqH`gMd$-x#+nhzY$LSyCDvRR8cFSf(pAVN9mJ* zEz~XGpn$^yrUZOgz@q|cfC^Os*N`Fb3j#hP;I{yG(k1MlPQc@c_ZgZG^wEzfFYwE9 z68y*IhY(*2B8cD+K29-OPEP=?qNf2j(o29l@UD#!UMo_JdTArzr>Grpg!%zLBlu~+ z5&A4FjG!)#Q%>MHAJ1WjoD-aLf^!b?XQiLfb}|6l=r!qg0w0o?b5g(;1bkh8j)E#aL>JPHSdGKXHQcnyXPs zcO6$NyBesC5+N3l{B2P?uTzxNvz0=DXItb=R!s9|&amU?#jIJ) z7;d9tMzagLJBIs=e#WvNS+r2oAA>iCben^_RhTNxS$0u#A=J$Os5N4h=8QrG;oM}z z3so==>ZW#9V9u?ROxswBoVzHf1qZu)%UBfDd}hm9sk$gQSSh(iQ5SsI$Qq{MHc0nX zk@zuFE7TU-SC9D-;hlkXOjin;J*m5~B-VewZkBaBmN!irKW3EiV$roCP3T3-uKI*m zI5b+S6l-=8?svZoLzWvpS_)~aID4V?SJU$+lTj(zjTd!K!2PhXCL zsw71MDoG(At*uNp3v@6N4z#7(CN_t{sw}n5v>pws0cmq65(%obITQ^CS=yG`9Ab43 zw#`J|dUVx|YxlkPusGC%d=vzf%^_LAUnHQkt_~<|n|Km2s&%!ZVknGCIN7*u;a6ft zUVGTq%Gk@JXLEX)mnt)FTW1^zdfr(wF3~-)$&(wG_S7jF+KuJ ztvZP<*UCfG+87n88zfqD+gigbTB0yEimu@p5kxnxJopjyN)!{s?s#usU!t$SFWx`U zHJ3=_dwSy9VE0^4-(W7A7)WRXJ=$C%-ZO_Ql6cqOE7AE!_&m(WO~a;XotdbZu2IIp zm64aFO7l7&Q+a~g0bCOAqz0R{7J1;e-y>;anzM5j{VHArS8;Q$HP*xxl=$s8gadep zzl9pwl1~6Sm`r!F=w@+Q)eEx;?ud;x ze*R_~j&CIW_5)(&e3sJthkN?t9ydW|K;64xLUb+ z&j&q1+%+3-Bg{?;twW^Y9zKRUnn}1*P>JTq5~FsCQ5i^a4ripm6Y@O+u2U3T(26li<3z z=_Q318nUIsqcWfk-HfnRiy{fGgIgT?RKCgQyRq4YvstRgb4bkOG{oNxZ@TK8eb@kf z&Y&xFOYqcei0HqcJBC}Zi62or4nrJ@u*X?2MYhVgRdZwon#W8e&VX4l_mt1)m0;~! zKA7^d`oH+#t=HuB_ufJ8WAXoG2L26U%4qBW literal 0 HcmV?d00001 diff --git a/Lib/NetLib_Standard2/NoSugarNet.DataHelper.pdb b/Lib/NetLib_Standard2/NoSugarNet.DataHelper.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d7ba2a9be975d7a19c3e58149a21d834dfdc2d7a GIT binary patch literal 8016 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 literal 0 HcmV?d00001 diff --git a/NoSugarNet.ClientCore.Standard2/App.config b/NoSugarNet.ClientCore.Standard2/App.config new file mode 100644 index 0000000..88fa402 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/NoSugarNet.ClientCore.Standard2/AppNoSugarNet.cs b/NoSugarNet.ClientCore.Standard2/AppNoSugarNet.cs new file mode 100644 index 0000000..a6e4847 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/AppNoSugarNet.cs @@ -0,0 +1,84 @@ +using NoSugarNet.ClientCoreNet.Standard2.Manager; +using NoSugarNet.ClientCoreNet.Standard2.Network; +using ServerCore.Manager; +using static NoSugarNet.ClientCoreNet.Standard2.Manager.LogManager; + +namespace NoSugarNet.ClientCoreNet.Standard2 +{ + public class AppNoSugarNet + { + public static string TokenStr; + public static long RID = -1; + public static string IP; + public static int Port; + public static LogManager log; + public static NetworkHelper networkHelper; + public static AppLogin login; + public static AppChat chat; + public static AppLocalClient local; + public static UserDataManager user; + public static System.Timers.Timer _SpeedCheckTimeTimer;//速度检测计时器 + public static int TimerInterval = 1000;//计时器间隔 + static NetStatus netStatus; + + #region 委托和事件 + public delegate void OnUpdateStatusHandler(NetStatus Status); + public static event OnUpdateStatusHandler OnUpdateStatus; + #endregion + + public static void Init(OnLogHandler onLog = null) + { + log = new LogManager(); + if(onLog != null) + LogManager.OnLog += onLog; + networkHelper = new NetworkHelper(); + login = new AppLogin(); + chat = new AppChat(); + local = new AppLocalClient(); + user = new UserDataManager(); + netStatus = new NetStatus(); + _SpeedCheckTimeTimer = new System.Timers.Timer(); + _SpeedCheckTimeTimer.Interval = TimerInterval; + _SpeedCheckTimeTimer.Elapsed += Checktimer_Elapsed; + _SpeedCheckTimeTimer.AutoReset = true; + } + + public static void Connect(string IP, int port) + { + if (networkHelper.Init(IP, port)) + _SpeedCheckTimeTimer.Enabled = true; + else + _SpeedCheckTimeTimer.Enabled = false; + } + + public static void Close() + { + local.StopAll(); + networkHelper.CloseConntect(); + AppNoSugarNet.log.Info("åœæ­¢"); + _SpeedCheckTimeTimer.Enabled = false; + } + + static void Checktimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) + { + local.GetCurrLenght(out long resultReciveAllLenght, out long resultSendAllLenght); + local.GetClientCount(out int ClientUserCount, out int TunnelCount); + + NetStatus resutnetStatus = new NetStatus() + { + TunnelCount = TunnelCount, + ClientUserCount = ClientUserCount, + srcSendAllLenght = resultSendAllLenght, + srcReciveAllLenght = resultReciveAllLenght, + srcReciveSecSpeed = (resultReciveAllLenght - netStatus.srcReciveAllLenght) / (TimerInterval / 1000), + srcSendSecSpeed = (resultSendAllLenght - netStatus.srcSendAllLenght) / (TimerInterval / 1000), + tSendAllLenght = local.tSendAllLenght, + tReciveAllLenght = local.tReciveAllLenght, + tSendSecSpeed = (local.tSendAllLenght - netStatus.tSendAllLenght) / (TimerInterval / 1000), + tReciveSecSpeed = (local.tReciveAllLenght - netStatus.tReciveAllLenght) / (TimerInterval / 1000), + }; + netStatus = resutnetStatus; + OnUpdateStatus?.Invoke(resutnetStatus); + } + } +} \ No newline at end of file diff --git a/NoSugarNet.ClientCore.Standard2/Common/Helper.cs b/NoSugarNet.ClientCore.Standard2/Common/Helper.cs new file mode 100644 index 0000000..8daba3e --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Common/Helper.cs @@ -0,0 +1,22 @@ +using System; + +namespace NoSugarNet.ClientCoreNet.Standard2.Common +{ + public static class Helper + { + public static long GetNowTimeStamp() + { + return GetTimeStamp(DateTime.Now); + } + + ///

+ /// 获å–时间戳 + /// + /// + public static long GetTimeStamp(DateTime dt) + { + TimeSpan ts = dt - new DateTime(1970, 1, 1, 0, 0, 0, 0); + return Convert.ToInt64(ts.TotalSeconds); + } + } +} diff --git a/NoSugarNet.ClientCore.Standard2/Common/ProtoBufHelper.cs b/NoSugarNet.ClientCore.Standard2/Common/ProtoBufHelper.cs new file mode 100644 index 0000000..3c229bc --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Common/ProtoBufHelper.cs @@ -0,0 +1,21 @@ +using Google.Protobuf; +using System; + +namespace NoSugarNet.ClientCoreNet.Standard2.Common +{ + public static class ProtoBufHelper + { + public static byte[] Serizlize(IMessage msg) + { + return msg.ToByteArray(); + } + public static T DeSerizlize(byte[] bytes) + { + var msgType = typeof(T); + object msg = Activator.CreateInstance(msgType); + ((IMessage)msg).MergeFrom(bytes); + return (T)msg; + } + } + +} diff --git a/NoSugarNet.ClientCore.Standard2/Event/EEvent.cs b/NoSugarNet.ClientCore.Standard2/Event/EEvent.cs new file mode 100644 index 0000000..5e1e9f4 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Event/EEvent.cs @@ -0,0 +1,8 @@ +namespace NoSugarNet.ClientCoreNet.Standard2.Event +{ + public enum EEvent + { + // 添加你自己需è¦çš„事件类型 + OnChatMsg + } +} diff --git a/NoSugarNet.ClientCore.Standard2/Event/EventSystem.cs b/NoSugarNet.ClientCore.Standard2/Event/EventSystem.cs new file mode 100644 index 0000000..b4f4d92 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Event/EventSystem.cs @@ -0,0 +1,241 @@ +using System; +using System.Collections.Generic; + +namespace NoSugarNet.ClientCoreNet.Standard2.Event +{ + public class EventData + { + private static long BaseUid = 0; + private static long GenUid() + { + return (++BaseUid); + } + + /// + /// 唯一id + /// + public long uid { get; private set; } + + /// + /// 回调 + /// + public Delegate callback { get; private set; } + + public EventData(Delegate d) + { + uid = GenUid(); + callback = d; + } + } + + public class EventSystem + { + private static EventSystem instance = new EventSystem(); + public static EventSystem Instance { get { return instance; } } + + private Dictionary> eventDic = new Dictionary>(128); + + private EventSystem() { } + + + #region RegisterEvent + public void RegisterEvent(EEvent evt, Action callback) + { + InterRegisterEvent(evt, callback); + } + + public void RegisterEvent(EEvent evt, Action callback) + { + InterRegisterEvent(evt, callback); + } + + public void RegisterEvent(EEvent evt, Action callback) + { + InterRegisterEvent(evt, callback); + } + + public void RegisterEvent(EEvent evt, Action callback) + { + InterRegisterEvent(evt, callback); + } + + public void RegisterEvent(EEvent evt, Action callback) + { + InterRegisterEvent(evt, callback); + } + + private void InterRegisterEvent(EEvent evt, Delegate callback) + { + if (eventDic.ContainsKey(evt)) + { + if (eventDic[evt].IndexOf(callback) < 0) + { + eventDic[evt].Add(callback); + } + } + else + { + eventDic.Add(evt, new List() { callback }); + } + } + #endregion + + #region UnregisterEvent + + public void UnregisterEvent(EEvent evt, Action callback) + { + Delegate tempDelegate = callback; + InterUnregisterEvent(evt, tempDelegate); + } + + public void UnregisterEvent(EEvent evt, Action callback) + { + Delegate tempDelegate = callback; + InterUnregisterEvent(evt, tempDelegate); + } + + public void UnregisterEvent(EEvent evt, Action callback) + { + Delegate tempDelegate = callback; + InterUnregisterEvent(evt, tempDelegate); + } + + public void UnregisterEvent(EEvent evt, Action callback) + { + Delegate tempDelegate = callback; + InterUnregisterEvent(evt, tempDelegate); + } + + public void UnregisterEvent(EEvent evt, Action callback) + { + Delegate tempDelegate = callback; + InterUnregisterEvent(evt, tempDelegate); + } + + private void InterUnregisterEvent(EEvent evt, Delegate callback) + { + if (eventDic.ContainsKey(evt)) + { + eventDic[evt].Remove(callback); + if (eventDic[evt].Count == 0) eventDic.Remove(evt); + } + } + #endregion + + #region PostEvent + public void PostEvent(EEvent evt, T1 arg1, T2 arg2, T3 arg3, T4 arg4) + { + List eventList = GetEventList(evt); + if (eventList != null) + { + foreach (Delegate callback in eventList) + { + try + { + ((Action)callback)(arg1, arg2, arg3, arg4); + } + catch (Exception e) + { + AppNoSugarNet.log.Error(e.Message); + } + } + } + } + + public void PostEvent(EEvent evt, T1 arg1, T2 arg2, T3 arg3) + { + List eventList = GetEventList(evt); + if (eventList != null) + { + foreach (Delegate callback in eventList) + { + try + { + ((Action)callback)(arg1, arg2, arg3); + } + catch (Exception e) + { + AppNoSugarNet.log.Error(e.Message); + } + } + } + } + + public void PostEvent(EEvent evt, T1 arg1, T2 arg2) + { + List eventList = GetEventList(evt); + if (eventList != null) + { + foreach (Delegate callback in eventList) + { + try + { + ((Action)callback)(arg1, arg2); + } + catch (Exception e) + { + AppNoSugarNet.log.Error(e.Message); + } + } + } + } + + public void PostEvent(EEvent evt, T arg) + { + List eventList = GetEventList(evt); + if (eventList != null) + { + foreach (Delegate callback in eventList) + { + try + { + ((Action)callback)(arg); + } + catch (Exception e) + { + AppNoSugarNet.log.Error(e.Message + ", method name : " + callback.Method); + } + } + } + + } + + public void PostEvent(EEvent evt) + { + List eventList = GetEventList(evt); + if (eventList != null) + { + foreach (Delegate callback in eventList) + { + try + { + ((Action)callback)(); + } + catch (Exception e) + { + AppNoSugarNet.log.Error(e.Message); + } + } + } + } + #endregion + + /// + /// 获å–所有事件 + /// + /// + /// + private List GetEventList(EEvent evt) + { + if (eventDic.ContainsKey(evt)) + { + List tempList = eventDic[evt]; + if (null != tempList) + { + return tempList; + } + } + return null; + } + } +} diff --git a/NoSugarNet.ClientCore.Standard2/Manager/AppChat.cs b/NoSugarNet.ClientCore.Standard2/Manager/AppChat.cs new file mode 100644 index 0000000..68b1635 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Manager/AppChat.cs @@ -0,0 +1,30 @@ +using AxibugProtobuf; +using NoSugarNet.ClientCoreNet.Standard2.Common; +using NoSugarNet.ClientCoreNet.Standard2.Event; +using NoSugarNet.ClientCoreNet.Standard2.Network; + +namespace NoSugarNet.ClientCoreNet.Standard2.Manager +{ + public class AppChat + { + public AppChat() + { + NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdChatmsg, RecvChatMsg); + } + + public void SendChatMsg(string ChatMsg) + { + Protobuf_ChatMsg msg = new Protobuf_ChatMsg() + { + ChatMsg = ChatMsg, + }; + AppNoSugarNet.networkHelper.SendToServer((int)CommandID.CmdChatmsg, ProtoBufHelper.Serizlize(msg)); + } + + public void RecvChatMsg(byte[] reqData) + { + Protobuf_ChatMsg_RESP msg = ProtoBufHelper.DeSerizlize(reqData); + EventSystem.Instance.PostEvent(EEvent.OnChatMsg, msg.NickName, msg.ChatMsg); + } + } +} diff --git a/NoSugarNet.ClientCore.Standard2/Manager/AppLocalClient.cs b/NoSugarNet.ClientCore.Standard2/Manager/AppLocalClient.cs new file mode 100644 index 0000000..1324112 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Manager/AppLocalClient.cs @@ -0,0 +1,337 @@ +using AxibugProtobuf; +using Google.Protobuf; +using NoSugarNet.ClientCoreNet.Standard2; +using NoSugarNet.ClientCoreNet.Standard2.Common; +using NoSugarNet.ClientCoreNet.Standard2.Network; +using NoSugarNet.DataHelper; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; + +namespace ServerCore.Manager +{ + public class AppLocalClient + { + Dictionary mDictTunnelID2Cfg = new Dictionary(); + Dictionary mDictTunnelID2Listeners = new Dictionary(); + CompressAdapter mCompressAdapter; + E_CompressAdapter compressAdapterType; + public LocalMsgQueuePool _localMsgPool = new LocalMsgQueuePool(1000); + + public long tReciveAllLenght { get; private set; } + public long tSendAllLenght { get; private set; } + + public AppLocalClient() + { + //æ³¨å†Œç½‘ç»œæ¶ˆæ¯ + NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdCfgs, Recive_CmdCfgs); + NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdTunnelS2CConnect, Recive_TunnelS2CConnect); + NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdTunnelS2CDisconnect, Recive_TunnelS2CDisconnect); + NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdTunnelS2CData, Recive_TunnelS2CData); + } + + public void GetCurrLenght(out long resultReciveAllLenght, out long resultSendAllLenght) + { + resultReciveAllLenght = 0; + resultSendAllLenght = 0; + byte[] Keys = mDictTunnelID2Listeners.Keys.ToArray(); + for (int i = 0; i < Keys.Length; i++) + { + //localå’Œè½¬å‘ æ”¶å‘相å + resultSendAllLenght += mDictTunnelID2Listeners[Keys[i]].mReciveAllLenght; + resultReciveAllLenght += mDictTunnelID2Listeners[Keys[i]].mSendAllLenght; + } + } + + + public void GetClientCount(out int ClientUserCount, out int TunnelCount) + { + TunnelCount = mDictTunnelID2Listeners.Count; + ClientUserCount = mDictTunnelID2Listeners.Count; + } + + /// + /// åˆå§‹åŒ–连接,先获å–到é…ç½® + /// + void InitListenerMode() + { + AppNoSugarNet.log.Info("åˆå§‹åŒ–压缩适é…器" + compressAdapterType); + //åˆå§‹åŒ–压缩适é…器,代表压缩类型 + mCompressAdapter = new CompressAdapter(compressAdapterType); + foreach (var cfg in mDictTunnelID2Cfg) + { + LocalListener listener = new LocalListener(256, 1024, cfg.Key); + AppNoSugarNet.log.Info($"开始监å¬é…ç½® Tunnel:{cfg.Key},Port:{cfg.Value.Port}"); + listener.Init(); + listener.Start(new IPEndPoint(IPAddress.Any.Address, (int)cfg.Value.Port)); + //listener.Init((int)cfg.Value.Port); + AddLocalListener(listener); + } + + } + + #region è¿žæŽ¥å­—å…¸ç®¡ç† + /// + /// 追加监å¬è€… + /// + /// + /// + void AddLocalListener(LocalListener _listener) + { + lock (mDictTunnelID2Listeners) + { + mDictTunnelID2Listeners[_listener.mTunnelID] = _listener; + } + } + /// + /// åˆ é™¤ç›‘å¬ + /// + /// + /// + void RemoveLocalListener(LocalListener _listener) + { + lock (mDictTunnelID2Listeners) + { + if (mDictTunnelID2Listeners.ContainsKey(_listener.mTunnelID)) + { + mDictTunnelID2Listeners.Remove(_listener.mTunnelID); + } + } + } + bool GetLocalListener(byte tunnelId,out LocalListener _listener) + { + _listener = null; + if (!mDictTunnelID2Listeners.ContainsKey(tunnelId)) + return false; + + _listener = mDictTunnelID2Listeners[tunnelId]; + return true; + } + public void StopAll() + { + lock (mDictTunnelID2Listeners) + { + byte[] keys = mDictTunnelID2Listeners.Keys.ToArray(); + for (int i = 0; i < keys.Length; i++) + { + LocalListener _listener = mDictTunnelID2Listeners[keys[i]]; + _listener.StopAll(); + //_listener.Stop(); + RemoveLocalListener(_listener); + } + } + } + #endregion + + #region 解æžæœåŠ¡ç«¯ä¸‹è¡Œæ•°æ® + public void Recive_CmdCfgs(byte[] reqData) + { + AppNoSugarNet.log.Debug("Recive_CmdCfgs"); + Protobuf_Cfgs msg = ProtoBufHelper.DeSerizlize(reqData); + + for (int i = 0;i < msg.Cfgs.Count;i++) + { + Protobuf_Cfgs_Single cfg = msg.Cfgs[i]; + mDictTunnelID2Cfg[(byte)cfg.TunnelID] = cfg; + } + compressAdapterType = (E_CompressAdapter)msg.CompressAdapterType; + InitListenerMode(); + } + public void Recive_TunnelS2CConnect(byte[] reqData) + { + AppNoSugarNet.log.Debug("Recive_TunnelS2CConnect"); + Protobuf_S2C_Connect msg = ProtoBufHelper.DeSerizlize(reqData); + if(msg.Connected == 1) + OnServerLocalConnect((byte)msg.TunnelID,(byte)msg.Idx); + else + OnServerLocalDisconnect((byte)msg.TunnelID, (byte)msg.Idx); + } + public void Recive_TunnelS2CDisconnect(byte[] reqData) + { + AppNoSugarNet.log.Debug("Recive_TunnelS2CDisconnect"); + Protobuf_S2C_Disconnect msg = ProtoBufHelper.DeSerizlize(reqData); + OnServerLocalDisconnect((byte)msg.TunnelID,(byte)msg.Idx); + } + public void Recive_TunnelS2CData(byte[] reqData) + { + //AppNoSugarNet.log.Debug("Recive_TunnelS2CData"); + Protobuf_S2C_DATA msg = ProtoBufHelper.DeSerizlize(reqData); + OnServerLocalDataCallBack((byte)msg.TunnelID,(byte)msg.Idx, msg.HunterNetCoreData.ToArray()); + } + #endregion + + #region 两端本地端å£è¿žæŽ¥äº‹ä»¶é€šçŸ¥ + /// + /// 当客户端本地端å£è¿žæŽ¥ + /// + /// + /// + public void OnClientLocalConnect(byte tunnelId,byte _Idx) + { + AppNoSugarNet.log.Debug($"OnClientLocalConnect {tunnelId},{_Idx}"); + if (!mDictTunnelID2Cfg.ContainsKey(tunnelId)) + return; + + byte[] respData = ProtoBufHelper.Serizlize(new Protobuf_C2S_Connect() + { + TunnelID = tunnelId, + Idx = _Idx, + }); + + //告知给æœåŠ¡ç«¯ï¼Œæ¥è‡ªå®¢æˆ·ç«¯æœ¬åœ°çš„连接建立 + AppNoSugarNet.networkHelper.SendToServer((int)CommandID.CmdTunnelC2SConnect, respData); + } + /// + /// 当客户端本地端å£è¿žæŽ¥æ–­å¼€ + /// + /// + /// + public void OnClientLocalDisconnect(byte tunnelId, byte _Idx) + { + AppNoSugarNet.log.Debug($"OnClientLocalDisconnect {tunnelId},{_Idx}"); + //隧é“ID定ä½æŠ•é€’æœåŠ¡ç«¯æœ¬åœ°è¿žæŽ¥ + if (!mDictTunnelID2Cfg.ContainsKey(tunnelId)) + return; + + byte[] respData = ProtoBufHelper.Serizlize(new Protobuf_C2S_Disconnect() + { + TunnelID = tunnelId, + Idx= _Idx, + }); + + //告知给æœåŠ¡ç«¯ï¼Œæ¥è‡ªå®¢æˆ·ç«¯æœ¬åœ°çš„连接断开 + AppNoSugarNet.networkHelper.SendToServer((int)CommandID.CmdTunnelC2SDisconnect, respData); + } + + /// + /// 当æœåŠ¡ç«¯æœ¬åœ°ç«¯å£è¿žæŽ¥ + /// + /// + public void OnServerLocalConnect(byte tunnelId,byte Idx) + { + AppNoSugarNet.log.Debug($"OnServerLocalConnect {tunnelId},{Idx}"); + if (!GetLocalListener(tunnelId, out LocalListener _listener)) + return; + //ç»´æŠ¤çŠ¶æ€ + _listener.SetRemoteConnectd(Idx, true); + if (_listener.GetDictMsgQueue(Idx, out List msglist)) + { + for(int i = 0; i < msglist.Count; i++) + { + IdxWithMsg msg = msglist[i]; + //投递给æœåŠ¡ç«¯ï¼Œæ¥è‡ªå®¢æˆ·ç«¯æœ¬åœ°çš„è¿žæŽ¥æ•°æ® + AppNoSugarNet.networkHelper.SendToServer((int)CommandID.CmdTunnelC2SData, msg.data); + //å‘é€åŽå›žæ”¶ + AppNoSugarNet.local._localMsgPool.Enqueue(msg); + } + } + } + /// + /// 当æœåŠ¡ç«¯æœ¬åœ°ç«¯å£è¿žæŽ¥æ–­å¼€ + /// + /// + /// + public void OnServerLocalDisconnect(byte tunnelId, byte Idx) + { + AppNoSugarNet.log.Debug($"OnServerLocalDisconnect {tunnelId},{Idx}"); + if (!GetLocalListener(tunnelId, out LocalListener _listener)) + return; + _listener.SetRemoteConnectd(Idx,false); + _listener.CloseConnectByIdx(Idx); + } + #endregion + + #region æ•°æ®æŠ•é€’ + /// + /// æ¥è‡ªæœåŠ¡ç«¯æœ¬åœ°è¿žæŽ¥æŠ•é€’çš„Tunnelæ•°æ® + /// + /// + /// + /// + public void OnServerLocalDataCallBack(byte tunnelId,byte Idx, byte[] data) + { + //AppNoSugarNet.log.Info($"OnServerLocalDataCallBack {tunnelId},{Idx},Data长度:{data.Length}"); + if (!GetLocalListener(tunnelId, out LocalListener _listener)) + return; + //记录压缩å‰æ•°æ®é•¿åº¦ + tReciveAllLenght += data.Length; + //解压 + data = mCompressAdapter.Decompress(data); + _listener.SendSocketByIdx(Idx,data); + } + /// + /// æ¥è‡ªå®¢æˆ·ç«¯æœ¬åœ°è¿žæŽ¥æŠ•é€’çš„Tunnelæ•°æ® + /// + /// + /// + /// + public void OnClientTunnelDataCallBack(byte tunnelId,byte Idx, byte[] data) + { + //AppNoSugarNet.log.Info($"OnClientTunnelDataCallBack {tunnelId},{Idx}"); + + int SlienLenght = 1000; + //判断数æ®é‡å¤§æ—¶åˆ†åŒ… + if (data.Length > SlienLenght) + { + byte[] tempSpan = data; + byte[] tempSpanSlien = null; + int PageCount = (int)(data.Length / SlienLenght); + if (data.Length % SlienLenght > 0) + { + PageCount++; + } + + for (int i = 0; i < PageCount; i++) + { + tempSpanSlien = new byte[SlienLenght]; + int StartIdx = i * SlienLenght; + if (i != PageCount - 1)//ä¸æ˜¯æœ€åŽä¸€ä¸ªåŒ… + Array.Copy(tempSpan, StartIdx, tempSpanSlien, 0, SlienLenght); + else//最åŽä¸€ä¸ª + Array.Copy(tempSpan, StartIdx, tempSpanSlien, 0, tempSpanSlien.Length - StartIdx); + + SendDataToRemote(tunnelId, Idx, tempSpanSlien); + + /*if (i != PageCount - 1)//ä¸æ˜¯æœ€åŽä¸€ä¸ªåŒ… + tempSpanSlien = tempSpan.Slice(StartIdx, SlienLenght); + else//最åŽä¸€ä¸ª + tempSpanSlien = tempSpan.Slice(StartIdx); + + SendDataToRemote(tunnelId, Idx, tempSpanSlien.ToArray());*/ + } + return; + } + SendDataToRemote(tunnelId, Idx, data); + } + + void SendDataToRemote(byte tunnelId, byte Idx, byte[] data) + { + //压缩 + data = mCompressAdapter.Compress(data); + //记录压缩åŽæ•°æ®é•¿åº¦ + tSendAllLenght += data.Length; + + byte[] respData = ProtoBufHelper.Serizlize(new Protobuf_C2S_DATA() + { + TunnelID = tunnelId, + Idx = Idx, + HunterNetCoreData = ByteString.CopyFrom(data) + }); + + if (!GetLocalListener(tunnelId, out LocalListener _listener)) + return; + + //远程未连接,添加到缓存 + if (!_listener.CheckRemoteConnect(Idx)) + { + _listener.EnqueueIdxWithMsg(Idx, respData); + return; + } + //投递给æœåŠ¡ç«¯ï¼Œæ¥è‡ªå®¢æˆ·ç«¯æœ¬åœ°çš„è¿žæŽ¥æ•°æ® + AppNoSugarNet.networkHelper.SendToServer((int)CommandID.CmdTunnelC2SData, respData); + } + #endregion + + } +} \ No newline at end of file diff --git a/NoSugarNet.ClientCore.Standard2/Manager/AppLogin.cs b/NoSugarNet.ClientCore.Standard2/Manager/AppLogin.cs new file mode 100644 index 0000000..d9684d3 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Manager/AppLogin.cs @@ -0,0 +1,38 @@ +using AxibugProtobuf; +using NoSugarNet.ClientCoreNet.Standard2.Common; +using NoSugarNet.ClientCoreNet.Standard2.Network; + +namespace NoSugarNet.ClientCoreNet.Standard2.Manager +{ + public class AppLogin + { + public AppLogin() + { + NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdLogin, RecvLoginMsg); + } + public void Login(string Account) + { + Protobuf_Login msg = new Protobuf_Login() + { + LoginType = 0, + Account = Account, + }; + AppNoSugarNet.networkHelper.SendToServer((int)CommandID.CmdLogin, ProtoBufHelper.Serizlize(msg)); + } + + public void RecvLoginMsg(byte[] reqData) + { + Protobuf_Login_RESP msg = ProtoBufHelper.DeSerizlize(reqData); + if (msg.Status == LoginResultStatus.Ok) + { + AppNoSugarNet.log.Info("登录æˆåŠŸ"); + AppNoSugarNet.user.InitMainUserData(AppNoSugarNet.user.userdata.Account); + } + else + { + AppNoSugarNet.log.Info("登录失败"); + } + } + + } +} diff --git a/NoSugarNet.ClientCore.Standard2/Manager/LocalClient/LocalListener.cs b/NoSugarNet.ClientCore.Standard2/Manager/LocalClient/LocalListener.cs new file mode 100644 index 0000000..641023b --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Manager/LocalClient/LocalListener.cs @@ -0,0 +1,264 @@ +using HaoYueNet.ServerNetwork.Standard2; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Sockets; + +namespace NoSugarNet.ClientCoreNet.Standard2 +{ + public class LocalListener : TcpSaeaServer_SourceMode + { + public byte mTunnelID; + public long mReciveAllLenght; + public long mSendAllLenght; + public LocalListener(int numConnections, int receiveBufferSize, byte TunnelID) + : base(numConnections, receiveBufferSize) + { + OnClientNumberChange += ClientNumberChange; + OnReceive += ReceiveData; + OnDisconnected += OnDisconnect; + OnNetLog += OnShowNetLog; + + mTunnelID = TunnelID; + } + + private void ClientNumberChange(int num, AsyncUserToken token) + { + AppNoSugarNet.log.Info("Clientæ•°å‘生å˜åŒ–"); + //增加连接数 + if (num > 0) + { + int Idx = AddDictSocket(token.Socket); + if (GetSocketByIdx(Idx, out LocalClientInfo _localClientInf)) + { + AppNoSugarNet.local.OnClientLocalConnect(mTunnelID, (byte)Idx); + } + } + } + + /// + /// 通过下标å‘é€ + /// + /// + /// + public void SendSocketByIdx(int Idx, byte[] data) + { + if (GetSocketByIdx(Idx, out LocalClientInfo _localClientInfo)) + { + mSendAllLenght += data.Length; + SendToSocket(_localClientInfo._socket, data); + } + //TODO连接å‰ç¼“å­˜æ•°æ® + } + + /// + /// 接å—包回调 + /// + /// åè®®ID + /// é”™è¯¯ç¼–å· + /// ä¸šåŠ¡æ•°æ® + private void ReceiveData(AsyncUserToken token, byte[] data) + { + DataCallBack(token.Socket, data); + } + + public void DataCallBack(Socket sk, byte[] data) + { + //AppNoSugarNet.log.Info("æ”¶åˆ°æ¶ˆæ¯ æ•°æ®é•¿åº¦=>" + data.Length); + //记录接å—长度 + mReciveAllLenght += data.Length; + if (!GetSocketIdxBySocket(sk, out int Idx)) + return; + try + { + //æŠ›å‡ºç½‘ç»œæ•°æ® + AppNoSugarNet.local.OnClientTunnelDataCallBack(mTunnelID, (byte)Idx, data); + } + catch (Exception ex) + { + AppNoSugarNet.log.Info("逻辑处ç†é”™è¯¯ï¼š" + ex.ToString()); + } + } + + public void CloseConnectByIdx(byte Idx) + { + if (GetSocketByIdx(Idx, out LocalClientInfo _localClientInf)) + { + _localClientInf._socket.Shutdown(SocketShutdown.Both); + } + } + + /// + /// 断开连接 + /// + /// + public void OnDisconnect(AsyncUserToken token) + { + AppNoSugarNet.log.Info("断开连接"); + + if (!GetSocketIdxBySocket(token.Socket, out int Idx)) + return; + + AppNoSugarNet.local.OnClientLocalDisconnect(mTunnelID, (byte)Idx); + RemoveDictSocket(token.Socket); + } + + public void OnShowNetLog(string msg) + { + AppNoSugarNet.log.Info(msg); + } + + #region 一个轻é‡çº§æ— ç”¨æˆ·è¿žæŽ¥ç®¡ç† + Dictionary DictSocketHandle2Idx = new Dictionary(); + Dictionary DictIdx2LocalClientInfo = new Dictionary(); + int mSeedIdx = 0; + List FreeIdxs = new List(); + public class LocalClientInfo + { + public Socket _socket; + public bool bRemoteConnect; + public bool bLocalConnect => _socket.Connected; + public Queue msgQueue = new Queue(); + } + + int GetNextIdx() + { + if (FreeIdxs.Count > 0) + { + int Idx = FreeIdxs[0]; + FreeIdxs.RemoveAt(0); + return Idx; + } + return mSeedIdx++; + } + + /// + /// 追加Socket返回下标 + /// + /// + /// + public int AddDictSocket(Socket socket) + { + if (socket == null) + return -1; + lock (DictSocketHandle2Idx) + { + int Idx = GetNextIdx(); + DictSocketHandle2Idx[socket.Handle] = Idx; + DictIdx2LocalClientInfo[Idx] = new LocalClientInfo() { _socket = socket,bRemoteConnect = false}; + return Idx; + } + } + + public void RemoveDictSocket(Socket socket) + { + if (socket == null) + return; + lock (DictSocketHandle2Idx) + { + if (!DictSocketHandle2Idx.ContainsKey(socket.Handle)) + return; + int Idx = DictSocketHandle2Idx[socket.Handle]; + FreeIdxs.Add(Idx); + if (DictIdx2LocalClientInfo.ContainsKey(Idx)) + DictIdx2LocalClientInfo.Remove(Idx); + DictSocketHandle2Idx.Remove(socket.Handle); + } + } + + bool GetSocketByIdx(int Idx, out LocalClientInfo _localClientInfo) + { + if (!DictIdx2LocalClientInfo.ContainsKey(Idx)) + { + _localClientInfo = null; + return false; + } + + _localClientInfo = DictIdx2LocalClientInfo[Idx]; + return true; + } + + public bool GetSocketIdxBySocket(Socket _socket, out int Idx) + { + if (_socket == null) + { + Idx = -1; + return false; + } + + if (!DictSocketHandle2Idx.ContainsKey(_socket.Handle)) + { + Idx = -1; + return false; + } + + Idx = DictSocketHandle2Idx[_socket.Handle]; + return true; + } + + public bool CheckRemoteConnect(int Idx) + { + if (!GetSocketByIdx(Idx, out LocalClientInfo _localClientInfo)) + return false; + return _localClientInfo.bRemoteConnect; + } + + public void SetRemoteConnectd(int Idx,bool bConnected) + { + if (!GetSocketByIdx(Idx, out LocalClientInfo _localClientInfo)) + return; + if (bConnected) + AppNoSugarNet.log.Info("远端本地连接已连接ï¼ï¼ï¼ï¼"); + else + AppNoSugarNet.log.Info("远端本地连接已断开连接ï¼ï¼ï¼ï¼"); + _localClientInfo.bRemoteConnect = bConnected; + } + + public void StopAll() + { + lock (DictIdx2LocalClientInfo) + { + int[] Idxs = DictIdx2LocalClientInfo.Keys.ToArray(); + for (int i = 0; i < Idxs.Length; i++) + { + CloseConnectByIdx((byte)Idxs[i]); + } + DictIdx2LocalClientInfo.Clear(); + } + } + + #endregion + + #region 缓存 + public void EnqueueIdxWithMsg(byte Idx, byte[] data) + { + if (!GetSocketByIdx(Idx, out LocalClientInfo _localClientInfo)) + return; + + IdxWithMsg Msg = AppNoSugarNet.local._localMsgPool.Dequeue(); + Msg.Idx = Idx; + Msg.data = data; + _localClientInfo.msgQueue.Enqueue(Msg); + } + public bool GetDictMsgQueue(byte Idx,out List MsgList) + { + if (!GetSocketByIdx(Idx, out LocalClientInfo _localClientInfo) || _localClientInfo.msgQueue.Count < 1) + { + MsgList = null; + return false; + } + + MsgList = new List(); + lock (_localClientInfo.msgQueue) + { + while (_localClientInfo.msgQueue.Count > 0) + { + IdxWithMsg msg = _localClientInfo.msgQueue.Dequeue(); + MsgList.Add(msg); + } + return true; + } + } + #endregion + } +} diff --git a/NoSugarNet.ClientCore.Standard2/Manager/LocalClient/LocalListener_Source.cs b/NoSugarNet.ClientCore.Standard2/Manager/LocalClient/LocalListener_Source.cs new file mode 100644 index 0000000..57f3da7 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Manager/LocalClient/LocalListener_Source.cs @@ -0,0 +1,292 @@ +using HaoYueNet.ClientNetworkNet.Standard2.OtherMode; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Sockets; + +namespace NoSugarNet.ClientCoreNet.Standard2 +{ + public class LocalListener_Source : NetworkHelperCore_ListenerMode + { + public byte mTunnelID; + public long mReciveAllLenght; + public long mSendAllLenght; + public LocalListener_Source(int numConnections, int receiveBufferSize, byte TunnelID) + : base() + { + OnConnected += ClientNumberChange; + OnReceive += ReceiveData; + OnDisconnected += OnDisconnectClient; + OnNetLog += OnShowNetLog; + + mTunnelID = TunnelID; + } + + private void ClientNumberChange(Socket socket) + { + AppNoSugarNet.log.Info("Clientæ•°å‘生å˜åŒ–"); + //增加连接数 + int Idx = AddDictSocket(socket); + if (GetSocketByIdx(Idx, out LocalClientInfo _localClientInf)) + { + AppNoSugarNet.local.OnClientLocalConnect(mTunnelID, (byte)Idx); + } + } + + /// + /// 通过下标å‘é€ + /// + /// + /// + public void SendSocketByIdx(int Idx, byte[] data) + { + if (GetSocketByIdx(Idx, out LocalClientInfo _localClientInfo)) + { + mSendAllLenght += data.Length; + SendToClient(_localClientInfo._socket, data); + } + //TODO连接å‰ç¼“å­˜æ•°æ® + } + + /// + /// 接å—包回调 + /// + /// åè®®ID + /// é”™è¯¯ç¼–å· + /// ä¸šåŠ¡æ•°æ® + private void ReceiveData(Socket sk, byte[] data) + { + DataCallBack(sk, data); + } + + public void DataCallBack(Socket sk, byte[] data) + { + //AppNoSugarNet.log.Info("æ”¶åˆ°æ¶ˆæ¯ æ•°æ®é•¿åº¦=>" + data.Length); + //记录接å—长度 + mReciveAllLenght += data.Length; + if (!GetSocketIdxBySocket(sk, out int Idx)) + return; + try + { + if (GetMsgQueueByIdx(sk.Handle, out Queue _queue)) + { + lock (_queue) + { + _queue.Enqueue(data); + while (_queue.Count > 0) + { + AppNoSugarNet.local.OnClientTunnelDataCallBack(mTunnelID, (byte)Idx, _queue.Dequeue()); + } + } + } + + ////æŠ›å‡ºç½‘ç»œæ•°æ® + //AppNoSugarNet.local.OnClientTunnelDataCallBack(mTunnelID, (byte)Idx, data); + } + catch (Exception ex) + { + AppNoSugarNet.log.Info("逻辑处ç†é”™è¯¯ï¼š" + ex.ToString()); + } + } + + public void CloseConnectByIdx(byte Idx) + { + if (GetSocketByIdx(Idx, out LocalClientInfo _localClientInf)) + { + _localClientInf._socket.Shutdown(SocketShutdown.Both); + } + } + + /// + /// 断开连接 + /// + /// + public void OnDisconnectClient(Socket sk) + { + AppNoSugarNet.log.Info("断开连接"); + + if (!GetSocketIdxBySocket(sk, out int Idx)) + return; + + AppNoSugarNet.local.OnClientLocalDisconnect(mTunnelID, (byte)Idx); + RemoveDictSocket(sk); + } + + public void OnShowNetLog(string msg) + { + AppNoSugarNet.log.Info(msg); + } + + #region 一个轻é‡çº§æ— ç”¨æˆ·è¿žæŽ¥ç®¡ç† + Dictionary DictSocketHandle2Idx = new Dictionary(); + Dictionary> DictSocketHandle2Msg = new Dictionary>(); + Dictionary DictIdx2LocalClientInfo = new Dictionary(); + int mSeedIdx = 0; + List FreeIdxs = new List(); + public class LocalClientInfo + { + public Socket _socket; + public bool bRemoteConnect; + public bool bLocalConnect => _socket.Connected; + public Queue msgQueue = new Queue(); + } + + int GetNextIdx() + { + if (FreeIdxs.Count > 0) + { + int Idx = FreeIdxs[0]; + FreeIdxs.RemoveAt(0); + return Idx; + } + return mSeedIdx++; + } + + /// + /// 追加Socket返回下标 + /// + /// + /// + public int AddDictSocket(Socket socket) + { + if (socket == null) + return -1; + lock (DictSocketHandle2Idx) + { + int Idx = GetNextIdx(); + DictSocketHandle2Idx[socket.Handle] = Idx; + DictIdx2LocalClientInfo[Idx] = new LocalClientInfo() { _socket = socket,bRemoteConnect = false}; + DictSocketHandle2Msg[socket.Handle] = new Queue(); + return Idx; + } + } + + public void RemoveDictSocket(Socket socket) + { + if (socket == null) + return; + lock (DictSocketHandle2Idx) + { + if (!DictSocketHandle2Idx.ContainsKey(socket.Handle)) + return; + int Idx = DictSocketHandle2Idx[socket.Handle]; + FreeIdxs.Add(Idx); + if (DictIdx2LocalClientInfo.ContainsKey(Idx)) + DictIdx2LocalClientInfo.Remove(Idx); + + if (DictSocketHandle2Msg.ContainsKey(socket.Handle)) + DictSocketHandle2Msg.Remove(socket.Handle); + + DictSocketHandle2Idx.Remove(socket.Handle); + } + } + + bool GetSocketByIdx(int Idx, out LocalClientInfo _localClientInfo) + { + if (!DictIdx2LocalClientInfo.ContainsKey(Idx)) + { + _localClientInfo = null; + return false; + } + + _localClientInfo = DictIdx2LocalClientInfo[Idx]; + return true; + } + + bool GetMsgQueueByIdx(IntPtr handle, out Queue _queue) + { + if (!DictSocketHandle2Msg.ContainsKey(handle)) + { + _queue = null; + return false; + } + + _queue = DictSocketHandle2Msg[handle]; + return true; + } + + public bool GetSocketIdxBySocket(Socket _socket, out int Idx) + { + if (_socket == null) + { + Idx = -1; + return false; + } + + if (!DictSocketHandle2Idx.ContainsKey(_socket.Handle)) + { + Idx = -1; + return false; + } + + Idx = DictSocketHandle2Idx[_socket.Handle]; + return true; + } + + public bool CheckRemoteConnect(int Idx) + { + if (!GetSocketByIdx(Idx, out LocalClientInfo _localClientInfo)) + return false; + return _localClientInfo.bRemoteConnect; + } + + public void SetRemoteConnectd(int Idx,bool bConnected) + { + if (!GetSocketByIdx(Idx, out LocalClientInfo _localClientInfo)) + return; + if (bConnected) + AppNoSugarNet.log.Info("远端本地连接已连接ï¼ï¼ï¼ï¼"); + else + AppNoSugarNet.log.Info("远端本地连接已断开连接ï¼ï¼ï¼ï¼"); + _localClientInfo.bRemoteConnect = bConnected; + } + + public void StopAll() + { + lock (DictIdx2LocalClientInfo) + { + int[] Idxs = DictIdx2LocalClientInfo.Keys.ToArray(); + for (int i = 0; i < Idxs.Length; i++) + { + CloseConnectByIdx((byte)Idxs[i]); + } + DictIdx2LocalClientInfo.Clear(); + } + } + + #endregion + + + #region 缓存 + public void EnqueueIdxWithMsg(byte Idx, byte[] data) + { + if (!GetSocketByIdx(Idx, out LocalClientInfo _localClientInfo)) + return; + + IdxWithMsg Msg = AppNoSugarNet.local._localMsgPool.Dequeue(); + Msg.Idx = Idx; + Msg.data = data; + _localClientInfo.msgQueue.Enqueue(Msg); + } + public bool GetDictMsgQueue(byte Idx,out List MsgList) + { + if (!GetSocketByIdx(Idx, out LocalClientInfo _localClientInfo) || _localClientInfo.msgQueue.Count < 1) + { + MsgList = null; + return false; + } + + MsgList = new List(); + lock (_localClientInfo.msgQueue) + { + while (_localClientInfo.msgQueue.Count > 0) + { + IdxWithMsg msg = _localClientInfo.msgQueue.Dequeue(); + MsgList.Add(msg); + } + return true; + } + } + #endregion + } +} diff --git a/NoSugarNet.ClientCore.Standard2/Manager/LocalClient/LocalMsgQueuePool.cs b/NoSugarNet.ClientCore.Standard2/Manager/LocalClient/LocalMsgQueuePool.cs new file mode 100644 index 0000000..9201ee4 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Manager/LocalClient/LocalMsgQueuePool.cs @@ -0,0 +1,55 @@ +using System.Collections.Generic; + +namespace NoSugarNet.ClientCoreNet.Standard2 +{ + public class IdxWithMsg + { + public byte Idx; + public byte[] data; + } + + public class LocalMsgQueuePool + { + Queue msg_pool; + + public LocalMsgQueuePool(int capacity) + { + msg_pool = new Queue(capacity); + } + + /// + /// å‘ Queue 的末尾添加一个对象。 + /// + /// + public void Enqueue(IdxWithMsg item) + { + lock (msg_pool) + { + item.Idx = 0; + item.data = null; + msg_pool.Enqueue(item); + } + } + + //移除并返回在 Queue 的开头的对象。 + public IdxWithMsg Dequeue() + { + lock (msg_pool) + { + if(msg_pool.Count > 0) + return msg_pool.Dequeue(); + return new IdxWithMsg(); + } + } + + public int Count + { + get { return msg_pool.Count; } + } + + public void Clear() + { + msg_pool.Clear(); + } + } +} diff --git a/NoSugarNet.ClientCore.Standard2/Manager/LogManager.cs b/NoSugarNet.ClientCore.Standard2/Manager/LogManager.cs new file mode 100644 index 0000000..e309b0a --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Manager/LogManager.cs @@ -0,0 +1,48 @@ +namespace NoSugarNet.ClientCoreNet.Standard2.Manager +{ + public class LogManager + { + public enum E_LogType:byte + { + Info = 0, + Debug = 1, + Warning = 2, + Error = 3, + } + /// + /// 日志 + /// + /// + public delegate void OnLogHandler(int debuglv,string msg); + + /// + /// 内部输出 + /// + public static event OnLogHandler OnLog; + + public void Info(string str) + { + Log(E_LogType.Info, str); + } + + public void Debug(string str) + { + Log(E_LogType.Debug, str); + } + + public void Warning(string str) + { + Log(E_LogType.Warning, str); + } + + public void Error(string str) + { + Log(E_LogType.Error, str); + } + + public void Log(E_LogType logtype,string str) + { + OnLog?.Invoke((int)logtype, str); + } + } +} \ No newline at end of file diff --git a/NoSugarNet.ClientCore.Standard2/Manager/UserDataManager.cs b/NoSugarNet.ClientCore.Standard2/Manager/UserDataManager.cs new file mode 100644 index 0000000..cf95c10 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Manager/UserDataManager.cs @@ -0,0 +1,56 @@ +using AxibugProtobuf; + +namespace NoSugarNet.ClientCoreNet.Standard2.Manager +{ + public class UserDataBase + { + public long UID { get; set; } + public string Account { get; set; } + } + + public class MainUserDataBase : UserDataBase + { + public bool IsLoggedIn { get; set; } = false; + } + + public class UserDataManager + { + public UserDataManager() + { + //注册é‡è¿žæˆåŠŸäº‹ä»¶ï¼Œä»¥ä¾¿åŽç»­è‡ªåŠ¨ç™»å½• + AppNoSugarNet.networkHelper.OnReConnected += OnReConnected; + } + public MainUserDataBase userdata { get;private set; } = new MainUserDataBase(); + public bool IsLoggedIn => userdata.IsLoggedIn; + + public void InitMainUserData(string UName) + { + userdata.Account = UName; + userdata.IsLoggedIn = true; + //以åŠå…¶ä»–æ•°æ®åˆå§‹åŒ– + //... + } + + /// + /// 登出 + /// + public void LoginOutData() + { + userdata.IsLoggedIn = false; + //以åŠå…¶ä»–æ•°æ®æ¸…ç† + //... + } + + /// + /// 当é‡è¿žæˆåŠŸ + /// + public void OnReConnected() + { + //如果之å‰å·²ç™»å½•ï¼Œåˆ™é‡æ–°ç™»å½• + if (userdata.IsLoggedIn) + { + AppNoSugarNet.login.Login(userdata.Account); + } + } + } +} diff --git a/NoSugarNet.ClientCore.Standard2/NetStatus.cs b/NoSugarNet.ClientCore.Standard2/NetStatus.cs new file mode 100644 index 0000000..95392de --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/NetStatus.cs @@ -0,0 +1,16 @@ +namespace NoSugarNet.ClientCoreNet.Standard2 +{ + public struct NetStatus + { + public int ClientUserCount; + public int TunnelCount; + public long srcReciveAllLenght; + public long srcSendAllLenght; + public long srcReciveSecSpeed; + public long srcSendSecSpeed; + public long tReciveAllLenght; + public long tSendAllLenght; + public long tReciveSecSpeed; + public long tSendSecSpeed; + } +} diff --git a/NoSugarNet.ClientCore.Standard2/Network/NetMsg.cs b/NoSugarNet.ClientCore.Standard2/Network/NetMsg.cs new file mode 100644 index 0000000..101b5a0 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Network/NetMsg.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; + +namespace NoSugarNet.ClientCoreNet.Standard2.Network +{ + + public class NetMsg + { + private static NetMsg instance = new NetMsg(); + public static NetMsg Instance { get { return instance; } } + + private Dictionary> netEventDic = new Dictionary>(128); + + private NetMsg() { } + + + #region RegisterMsgEvent + + public void RegNetMsgEvent(int cmd, Action callback) + { + InterRegNetMsgEvent(cmd, callback); + } + + private void InterRegNetMsgEvent(int cmd, Delegate callback) + { + if (netEventDic.ContainsKey(cmd)) + { + if (netEventDic[cmd].IndexOf(callback) < 0) + { + netEventDic[cmd].Add(callback); + } + } + else + { + netEventDic.Add(cmd, new List() { callback }); + } + } + #endregion + + #region UnregisterCMD + + public void UnregisterCMD(int evt, Action callback) + { + Delegate tempDelegate = callback; + InterUnregisterCMD(evt, tempDelegate); + } + + private void InterUnregisterCMD(int cmd, Delegate callback) + { + if (netEventDic.ContainsKey(cmd)) + { + netEventDic[cmd].Remove(callback); + if (netEventDic[cmd].Count == 0) netEventDic.Remove(cmd); + } + } + #endregion + + #region PostEvent + public void PostNetMsgEvent(int cmd, byte[] arg) + { + List eventList = GetNetEventDicList(cmd); + if (eventList != null) + { + foreach (Delegate callback in eventList) + { + try + { + ((Action)callback)(arg); + } + catch (Exception e) + { + AppNoSugarNet.log.Error(e.Message); + } + } + } + } + #endregion + + /// + /// 获å–所有事件 + /// + /// + /// + private List GetNetEventDicList(int cmd) + { + if (netEventDic.ContainsKey(cmd)) + { + List tempList = netEventDic[cmd]; + if (null != tempList) + { + return tempList; + } + } + return null; + } + } +} diff --git a/NoSugarNet.ClientCore.Standard2/Network/NetworkHelper.cs b/NoSugarNet.ClientCore.Standard2/Network/NetworkHelper.cs new file mode 100644 index 0000000..0a1c387 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Network/NetworkHelper.cs @@ -0,0 +1,125 @@ +using HaoYueNet.ClientNetworkNet.Standard2; +using System; +using System.Threading; + +namespace NoSugarNet.ClientCoreNet.Standard2.Network +{ + /// + /// 继承网络库,以支æŒç½‘络功能 + /// + public class NetworkHelper : NetworkHelperCore + { + public NetworkHelper() + { + //指定接收æœåŠ¡å™¨æ•°æ®äº‹ä»¶ + OnReceiveData += GetDataCallBack; + //断开连接 + OnClose += OnConnectClose; + OnConnected += NetworkConnected; + //网络库调试信æ¯è¾“出事件,用于打å°ç½‘络内容 + OnLogOut += NetworkDeBugLog; + } + + public delegate void OnReConnectedHandler(); + /// + /// é‡è¿žæˆåŠŸäº‹ä»¶ + /// + public event OnReConnectedHandler OnReConnected; + /// + /// 是å¦è‡ªåŠ¨é‡è¿ž + /// + public bool bAutoReConnect = false; + /// + /// é‡è¿žå°è¯•æ—¶é—´ + /// + const int ReConnectTryTime = 1000; + + public void NetworkConnected(bool IsConnect) + { + NetworkDeBugLog($"NetworkConnected:{IsConnect}"); + if (IsConnect) + { + AppNoSugarNet.login.Login(Guid.NewGuid().ToString()); + } + else + { + //连接失败 + NetworkDeBugLog("连接失败ï¼"); + //自动é‡è¿žå¼€å…³ + if (bAutoReConnect) + ReConnect(); + } + } + + public void NetworkDeBugLog(string str) + { + //用于Unity内的输出 + //Debug.Log("NetCoreDebug >> "+str); + AppNoSugarNet.log.Info("NetCoreDebug >> " + str); + } + + /// + /// 接å—包回调 + /// + /// åè®®ID + /// é”™è¯¯ç¼–å· + /// ä¸šåŠ¡æ•°æ® + public void GetDataCallBack(int CMDID, int ERRCODE, byte[] data) + { + //NetworkDeBugLog("æ”¶åˆ°æ¶ˆæ¯ CMDID =>" + CMDID + " ERRCODE =>" + ERRCODE + " æ•°æ®é•¿åº¦=>" + data.Length); + try + { + //æŠ›å‡ºç½‘ç»œæ•°æ® + NetMsg.Instance.PostNetMsgEvent(CMDID, data); + } + catch (Exception ex) + { + NetworkDeBugLog("逻辑处ç†é”™è¯¯ï¼š" + ex.ToString()); + } + } + + /// + /// 关闭连接 + /// + public void OnConnectClose() + { + NetworkDeBugLog("OnConnectClose"); + + //åœæ­¢æ‰€æœ‰ + AppNoSugarNet.local.StopAll(); + + //自动é‡è¿žå¼€å…³ + if (bAutoReConnect) + ReConnect(); + } + + + bool bInReConnecting = false; + /// + /// 自动é‡è¿ž + /// + void ReConnect() + { + if (bInReConnecting) + return; + bInReConnecting = true; + + bool bflagDone = false; + do + { + //等待时间 + Thread.Sleep(ReConnectTryTime); + AppNoSugarNet.log.Info($"å°è¯•è‡ªåŠ¨é‡è¿ž{LastConnectIP}:{LastConnectPort}……"); + //第一步 + if (Init(LastConnectIP, LastConnectPort)) + { + AppNoSugarNet.log.Info($"自动é‡è¿žæˆåŠŸ!"); + bflagDone = true; + AppNoSugarNet.log.Info($"触å‘é‡è¿žåŽçš„自动逻辑!"); + OnReConnected?.Invoke(); + } + } while (!bflagDone); + bInReConnecting = false; + } + } +} diff --git a/NoSugarNet.ClientCore.Standard2/NoSugarNet.ClientCore.Standard2.csproj b/NoSugarNet.ClientCore.Standard2/NoSugarNet.ClientCore.Standard2.csproj new file mode 100644 index 0000000..46ead48 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/NoSugarNet.ClientCore.Standard2.csproj @@ -0,0 +1,26 @@ + + + netstandard2.0 + + + + 8.0 + + + + + + + ..\Lib\Google.Protobuf.dll + + + ..\Lib\NetLib_Standard2\HaoYueNet.ClientNetworkNet.Standard2.dll + + + ..\Lib\NetLib_Standard2\HaoYueNet.ServerNetwork.Standard2.dll + + + ..\Lib\NetLib_Standard2\NoSugarNet.DataHelper.dll + + + \ No newline at end of file diff --git a/NoSugarNet.ClientCore.Standard2/NoSugarNet.ClientCore.Standard2.csproj.user b/NoSugarNet.ClientCore.Standard2/NoSugarNet.ClientCore.Standard2.csproj.user new file mode 100644 index 0000000..33c4ad6 --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/NoSugarNet.ClientCore.Standard2.csproj.user @@ -0,0 +1,6 @@ + + + + <_LastSelectedProfileId>F:\Sin365\NoSugarNet\NoSugarNet.ClientCore.Standard2\Properties\PublishProfiles\FolderProfile.pubxml + + \ No newline at end of file diff --git a/NoSugarNet.ClientCore.Standard2/Properties/PublishProfiles/FolderProfile.pubxml b/NoSugarNet.ClientCore.Standard2/Properties/PublishProfiles/FolderProfile.pubxml new file mode 100644 index 0000000..659e1ee --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Properties/PublishProfiles/FolderProfile.pubxml @@ -0,0 +1,13 @@ + + + + + Release + Any CPU + bin\Release\netstandard2.0\publish\ + FileSystem + <_TargetId>Folder + + \ No newline at end of file diff --git a/NoSugarNet.ClientCore.Standard2/Properties/PublishProfiles/FolderProfile.pubxml.user b/NoSugarNet.ClientCore.Standard2/Properties/PublishProfiles/FolderProfile.pubxml.user new file mode 100644 index 0000000..040aa3b --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -0,0 +1,10 @@ + + + + + True|2024-04-15T06:51:39.2435225Z;True|2024-04-15T14:51:19.4250865+08:00;True|2024-04-15T14:49:22.9829361+08:00; + + + \ No newline at end of file diff --git a/NoSugarNet.ClientCore.Standard2/Protobuf/ProtobufNoSugar.cs b/NoSugarNet.ClientCore.Standard2/Protobuf/ProtobufNoSugar.cs new file mode 100644 index 0000000..dce38be --- /dev/null +++ b/NoSugarNet.ClientCore.Standard2/Protobuf/ProtobufNoSugar.cs @@ -0,0 +1,3012 @@ +// +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: protobuf_NoSugar.proto +// +#pragma warning disable 1591, 0612, 3021 +#region Designer generated code + +using pb = global::Google.Protobuf; +using pbc = global::Google.Protobuf.Collections; +using pbr = global::Google.Protobuf.Reflection; +using scg = global::System.Collections.Generic; +namespace AxibugProtobuf { + + /// Holder for reflection information generated from protobuf_NoSugar.proto + public static partial class ProtobufNoSugarReflection { + + #region Descriptor + /// File descriptor for protobuf_NoSugar.proto + public static pbr::FileDescriptor Descriptor { + get { return descriptor; } + } + private static pbr::FileDescriptor descriptor; + + static ProtobufNoSugarReflection() { + byte[] descriptorData = global::System.Convert.FromBase64String( + string.Concat( + "ChZwcm90b2J1Zl9Ob1N1Z2FyLnByb3RvEg5BeGlidWdQcm90b2J1ZiKRAQoO", + "UHJvdG9idWZfTG9naW4SLAoJbG9naW5UeXBlGAEgASgOMhkuQXhpYnVnUHJv", + "dG9idWYuTG9naW5UeXBlEi4KCmRldmljZVR5cGUYAiABKA4yGi5BeGlidWdQ", + "cm90b2J1Zi5EZXZpY2VUeXBlEg8KB0FjY291bnQYAyABKAkSEAoIUGFzc3dv", + "cmQYBCABKAkifwoTUHJvdG9idWZfTG9naW5fUkVTUBINCgVUb2tlbhgBIAEo", + "CRIVCg1MYXN0TG9naW5EYXRlGAIgASgJEg8KB1JlZ0RhdGUYAyABKAkSMQoG", + "U3RhdHVzGAQgASgOMiEuQXhpYnVnUHJvdG9idWYuTG9naW5SZXN1bHRTdGF0", + "dXMiYAoNUHJvdG9idWZfQ2ZncxIbChNDb21wcmVzc0FkYXB0ZXJUeXBlGAEg", + "ASgFEjIKBGNmZ3MYAiADKAsyJC5BeGlidWdQcm90b2J1Zi5Qcm90b2J1Zl9D", + "ZmdzX1NpbmdsZSI2ChRQcm90b2J1Zl9DZmdzX1NpbmdsZRIQCghUdW5uZWxJ", + "RBgBIAEoDRIMCgRQb3J0GAIgASgFIiMKEFByb3RvYnVmX0NoYXRNc2cSDwoH", + "Q2hhdE1zZxgBIAEoCSJIChVQcm90b2J1Zl9DaGF0TXNnX1JFU1ASEAoITmlj", + "a05hbWUYASABKAkSDwoHQ2hhdE1zZxgCIAEoCRIMCgREYXRlGAMgASgDIjUK", + "FFByb3RvYnVmX0MyU19Db25uZWN0EhAKCFR1bm5lbElEGAEgASgNEgsKA0lk", + "eBgCIAEoDSJIChRQcm90b2J1Zl9TMkNfQ29ubmVjdBIQCghUdW5uZWxJRBgB", + "IAEoDRILCgNJZHgYAiABKA0SEQoJQ29ubmVjdGVkGAMgASgNIjgKF1Byb3Rv", + "YnVmX0MyU19EaXNjb25uZWN0EhAKCFR1bm5lbElEGAEgASgNEgsKA0lkeBgC", + "IAEoDSI4ChdQcm90b2J1Zl9TMkNfRGlzY29ubmVjdBIQCghUdW5uZWxJRBgB", + "IAEoDRILCgNJZHgYAiABKA0iTgoRUHJvdG9idWZfQzJTX0RBVEESEAoIVHVu", + "bmVsSUQYASABKA0SCwoDSWR4GAIgASgNEhoKEkh1bnRlck5ldENvcmVfRGF0", + "YRgDIAEoDCJOChFQcm90b2J1Zl9TMkNfREFUQRIQCghUdW5uZWxJRBgBIAEo", + "DRILCgNJZHgYAiABKA0SGgoSSHVudGVyTmV0Q29yZV9EYXRhGAMgASgMKvoB", + "CglDb21tYW5kSUQSDgoKQ01EX0RFRkFVTBAAEg4KCUNNRF9MT0dJThDRDxIN", + "CghDTURfQ0ZHUxC5FxIQCgtDTURfQ0hBVE1TRxChHxIbChZDTURfVFVOTkVM", + "X0MyU19DT05ORUNUEIgnEhsKFkNNRF9UVU5ORUxfUzJDX0NPTk5FQ1QQiScS", + "HgoZQ01EX1RVTk5FTF9DMlNfRElTQ09OTkVDVBCKJxIeChlDTURfVFVOTkVM", + "X1MyQ19ESVNDT05ORUNUEIsnEhgKE0NNRF9UVU5ORUxfQzJTX0RBVEEQjCcS", + "GAoTQ01EX1RVTk5FTF9TMkNfREFUQRCNJyorCglFcnJvckNvZGUSEAoMRVJS", + "T1JfREVGQVVMEAASDAoIRVJST1JfT0sQASo+CglMb2dpblR5cGUSDwoLQmFz", + "ZURlZmF1bHQQABIOCgpIYW9ZdWVBdXRoEAESBwoDQkYzEAMSBwoDQkY0EAQq", + "SwoKRGV2aWNlVHlwZRIWChJEZXZpY2VUeXBlX0RlZmF1bHQQABIGCgJQQxAB", + "EgsKB0FuZHJvaWQQAhIHCgNJT1MQAxIHCgNQU1YQBCpOChFMb2dpblJlc3Vs", + "dFN0YXR1cxIhCh1Mb2dpblJlc3VsdFN0YXR1c19CYXNlRGVmYXVsdBAAEgYK", + "Ak9LEAESDgoKQWNjb3VudEVychACQgJIAWIGcHJvdG8z")); + descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData, + new pbr::FileDescriptor[] { }, + new pbr::GeneratedClrTypeInfo(new[] {typeof(global::AxibugProtobuf.CommandID), typeof(global::AxibugProtobuf.ErrorCode), typeof(global::AxibugProtobuf.LoginType), typeof(global::AxibugProtobuf.DeviceType), typeof(global::AxibugProtobuf.LoginResultStatus), }, null, new pbr::GeneratedClrTypeInfo[] { + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login), global::AxibugProtobuf.Protobuf_Login.Parser, new[]{ "LoginType", "DeviceType", "Account", "Password" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Login_RESP), global::AxibugProtobuf.Protobuf_Login_RESP.Parser, new[]{ "Token", "LastLoginDate", "RegDate", "Status" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Cfgs), global::AxibugProtobuf.Protobuf_Cfgs.Parser, new[]{ "CompressAdapterType", "Cfgs" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_Cfgs_Single), global::AxibugProtobuf.Protobuf_Cfgs_Single.Parser, new[]{ "TunnelID", "Port" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_ChatMsg), global::AxibugProtobuf.Protobuf_ChatMsg.Parser, new[]{ "ChatMsg" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_ChatMsg_RESP), global::AxibugProtobuf.Protobuf_ChatMsg_RESP.Parser, new[]{ "NickName", "ChatMsg", "Date" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_C2S_Connect), global::AxibugProtobuf.Protobuf_C2S_Connect.Parser, new[]{ "TunnelID", "Idx" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_S2C_Connect), global::AxibugProtobuf.Protobuf_S2C_Connect.Parser, new[]{ "TunnelID", "Idx", "Connected" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_C2S_Disconnect), global::AxibugProtobuf.Protobuf_C2S_Disconnect.Parser, new[]{ "TunnelID", "Idx" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_S2C_Disconnect), global::AxibugProtobuf.Protobuf_S2C_Disconnect.Parser, new[]{ "TunnelID", "Idx" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_C2S_DATA), global::AxibugProtobuf.Protobuf_C2S_DATA.Parser, new[]{ "TunnelID", "Idx", "HunterNetCoreData" }, null, null, null, null), + new pbr::GeneratedClrTypeInfo(typeof(global::AxibugProtobuf.Protobuf_S2C_DATA), global::AxibugProtobuf.Protobuf_S2C_DATA.Parser, new[]{ "TunnelID", "Idx", "HunterNetCoreData" }, null, null, null, null) + })); + } + #endregion + + } + #region Enums + public enum CommandID { + /// + ///缺çœä¸ä½¿ç”¨ + /// + [pbr::OriginalName("CMD_DEFAUL")] CmdDefaul = 0, + /// + ///自动登录上行 | 下行 对应 Protobuf_Login | Protobuf_Login_RESP + /// + [pbr::OriginalName("CMD_LOGIN")] CmdLogin = 2001, + /// + ///é…ç½®ä¿¡æ¯ ä¸‹è¡Œ 对应 Protobuf_Cfgs + /// + [pbr::OriginalName("CMD_CFGS")] CmdCfgs = 3001, + /// + ///广播信æ¯ä¸Šè¡Œ | 下行 对应 Protobuf_ChatMsg | Protobuf_ChatMsg_RESP + /// + [pbr::OriginalName("CMD_CHATMSG")] CmdChatmsg = 4001, + /// + ///客户端告知æœåŠ¡ç«¯ 客户端本地连接建立 上行 Protobuf_C2S_Connect + /// + [pbr::OriginalName("CMD_TUNNEL_C2S_CONNECT")] CmdTunnelC2SConnect = 5000, + /// + ///æœåŠ¡ç«¯å‘ŠçŸ¥å®¢æˆ·ç«¯ æœåŠ¡ç«¯æœ¬åœ°è¿žæŽ¥å»ºç«‹ 下行 Protobuf_S2C_Connect + /// + [pbr::OriginalName("CMD_TUNNEL_S2C_CONNECT")] CmdTunnelS2CConnect = 5001, + /// + ///客户端告知æœåŠ¡ç«¯ 客户端本地连接断开 上行 Protobuf_C2S_Disconnect + /// + [pbr::OriginalName("CMD_TUNNEL_C2S_DISCONNECT")] CmdTunnelC2SDisconnect = 5002, + /// + ///æœåŠ¡ç«¯å‘ŠçŸ¥å®¢æˆ·ç«¯ æœåŠ¡ç«¯æœ¬åœ°è¿žæŽ¥æ–­å¼€ 下行 Protobuf_S2C_Disconnect + /// + [pbr::OriginalName("CMD_TUNNEL_S2C_DISCONNECT")] CmdTunnelS2CDisconnect = 5003, + /// + ///客户端投递本地TCP通讯数æ®åŒ… 上行 Protobuf_C2S_DATA + /// + [pbr::OriginalName("CMD_TUNNEL_C2S_DATA")] CmdTunnelC2SData = 5004, + /// + ///æœåŠ¡ç«¯æŠ•é€’本地TCP通讯数æ®åŒ… 下行 Protobuf_S2C_DATA + /// + [pbr::OriginalName("CMD_TUNNEL_S2C_DATA")] CmdTunnelS2CData = 5005, + } + + public enum ErrorCode { + /// + ///缺çœä¸ä½¿ç”¨ + /// + [pbr::OriginalName("ERROR_DEFAUL")] ErrorDefaul = 0, + /// + ///æˆåŠŸ + /// + [pbr::OriginalName("ERROR_OK")] ErrorOk = 1, + } + + public enum LoginType { + /// + ///缺çœä¸ä½¿ç”¨ + /// + [pbr::OriginalName("BaseDefault")] BaseDefault = 0, + [pbr::OriginalName("HaoYueAuth")] HaoYueAuth = 1, + [pbr::OriginalName("BF3")] Bf3 = 3, + [pbr::OriginalName("BF4")] Bf4 = 4, + } + + public enum DeviceType { + /// + ///缺çœä¸ä½¿ç”¨ + /// + [pbr::OriginalName("DeviceType_Default")] Default = 0, + [pbr::OriginalName("PC")] Pc = 1, + [pbr::OriginalName("Android")] Android = 2, + [pbr::OriginalName("IOS")] Ios = 3, + [pbr::OriginalName("PSV")] Psv = 4, + } + + public enum LoginResultStatus { + /// + ///缺çœä¸ä½¿ç”¨ + /// + [pbr::OriginalName("LoginResultStatus_BaseDefault")] BaseDefault = 0, + [pbr::OriginalName("OK")] Ok = 1, + [pbr::OriginalName("AccountErr")] AccountErr = 2, + } + + #endregion + + #region Messages + /// + ///登录数æ®ä¸Šè¡Œ + /// + public sealed partial class Protobuf_Login : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_Login()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::AxibugProtobuf.ProtobufNoSugarReflection.Descriptor.MessageTypes[0]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_Login() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_Login(Protobuf_Login other) : this() { + loginType_ = other.loginType_; + deviceType_ = other.deviceType_; + account_ = other.account_; + password_ = other.password_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_Login Clone() { + return new Protobuf_Login(this); + } + + /// Field number for the "loginType" field. + public const int LoginTypeFieldNumber = 1; + private global::AxibugProtobuf.LoginType loginType_ = global::AxibugProtobuf.LoginType.BaseDefault; + /// + ///登录æ“作类型 [0]çš“æœˆé€šè¡Œè¯ [3] 皓月BF3 [4] 皓月BF4 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::AxibugProtobuf.LoginType LoginType { + get { return loginType_; } + set { + loginType_ = value; + } + } + + /// Field number for the "deviceType" field. + public const int DeviceTypeFieldNumber = 2; + private global::AxibugProtobuf.DeviceType deviceType_ = global::AxibugProtobuf.DeviceType.Default; + /// + ///设备类型 [0]PC [1]AndroidPad预留 [3]IPad预留 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::AxibugProtobuf.DeviceType DeviceType { + get { return deviceType_; } + set { + deviceType_ = value; + } + } + + /// Field number for the "Account" field. + public const int AccountFieldNumber = 3; + private string account_ = ""; + /// + ///用户å + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Account { + get { return account_; } + set { + account_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Password" field. + public const int PasswordFieldNumber = 4; + private string password_ = ""; + /// + ///å¯†ç  + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Password { + get { return password_; } + set { + password_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Protobuf_Login); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Protobuf_Login other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (LoginType != other.LoginType) return false; + if (DeviceType != other.DeviceType) return false; + if (Account != other.Account) return false; + if (Password != other.Password) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (LoginType != global::AxibugProtobuf.LoginType.BaseDefault) hash ^= LoginType.GetHashCode(); + if (DeviceType != global::AxibugProtobuf.DeviceType.Default) hash ^= DeviceType.GetHashCode(); + if (Account.Length != 0) hash ^= Account.GetHashCode(); + if (Password.Length != 0) hash ^= Password.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (LoginType != global::AxibugProtobuf.LoginType.BaseDefault) { + output.WriteRawTag(8); + output.WriteEnum((int) LoginType); + } + if (DeviceType != global::AxibugProtobuf.DeviceType.Default) { + output.WriteRawTag(16); + output.WriteEnum((int) DeviceType); + } + if (Account.Length != 0) { + output.WriteRawTag(26); + output.WriteString(Account); + } + if (Password.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Password); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (LoginType != global::AxibugProtobuf.LoginType.BaseDefault) { + output.WriteRawTag(8); + output.WriteEnum((int) LoginType); + } + if (DeviceType != global::AxibugProtobuf.DeviceType.Default) { + output.WriteRawTag(16); + output.WriteEnum((int) DeviceType); + } + if (Account.Length != 0) { + output.WriteRawTag(26); + output.WriteString(Account); + } + if (Password.Length != 0) { + output.WriteRawTag(34); + output.WriteString(Password); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (LoginType != global::AxibugProtobuf.LoginType.BaseDefault) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) LoginType); + } + if (DeviceType != global::AxibugProtobuf.DeviceType.Default) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) DeviceType); + } + if (Account.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Account); + } + if (Password.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Password); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Protobuf_Login other) { + if (other == null) { + return; + } + if (other.LoginType != global::AxibugProtobuf.LoginType.BaseDefault) { + LoginType = other.LoginType; + } + if (other.DeviceType != global::AxibugProtobuf.DeviceType.Default) { + DeviceType = other.DeviceType; + } + if (other.Account.Length != 0) { + Account = other.Account; + } + if (other.Password.Length != 0) { + Password = other.Password; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + LoginType = (global::AxibugProtobuf.LoginType) input.ReadEnum(); + break; + } + case 16: { + DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum(); + break; + } + case 26: { + Account = input.ReadString(); + break; + } + case 34: { + Password = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + LoginType = (global::AxibugProtobuf.LoginType) input.ReadEnum(); + break; + } + case 16: { + DeviceType = (global::AxibugProtobuf.DeviceType) input.ReadEnum(); + break; + } + case 26: { + Account = input.ReadString(); + break; + } + case 34: { + Password = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + ///登录数æ®ä¸‹è¡Œ + /// + public sealed partial class Protobuf_Login_RESP : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_Login_RESP()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::AxibugProtobuf.ProtobufNoSugarReflection.Descriptor.MessageTypes[1]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_Login_RESP() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_Login_RESP(Protobuf_Login_RESP other) : this() { + token_ = other.token_; + lastLoginDate_ = other.lastLoginDate_; + regDate_ = other.regDate_; + status_ = other.status_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_Login_RESP Clone() { + return new Protobuf_Login_RESP(this); + } + + /// Field number for the "Token" field. + public const int TokenFieldNumber = 1; + private string token_ = ""; + /// + ///ç™»å½•å‡­æ® ï¼ˆæœ¬æ¬¡ç™»å½•ä¹‹åŽï¼Œæ‰€æœ‰ä¸šåŠ¡è¯·æ±‚凭æ®ï¼Œéœ€è¦å­˜å‚¨åœ¨å†…存中) + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string Token { + get { return token_; } + set { + token_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "LastLoginDate" field. + public const int LastLoginDateFieldNumber = 2; + private string lastLoginDate_ = ""; + /// + ///上次登录时间(åªç”¨äºŽå‘ˆçŽ°çš„字符串,若界é¢éœ€æ±‚需è¦ï¼‰ + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string LastLoginDate { + get { return lastLoginDate_; } + set { + lastLoginDate_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "RegDate" field. + public const int RegDateFieldNumber = 3; + private string regDate_ = ""; + /// + ///注册时间(åªç”¨äºŽå‘ˆçŽ°çš„字符串,若界é¢éœ€æ±‚需è¦ï¼‰ + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string RegDate { + get { return regDate_; } + set { + regDate_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Status" field. + public const int StatusFieldNumber = 4; + private global::AxibugProtobuf.LoginResultStatus status_ = global::AxibugProtobuf.LoginResultStatus.BaseDefault; + /// + ///è´¦å·çŠ¶æ€ (预留) [1]正常[0]被ç¦å° + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public global::AxibugProtobuf.LoginResultStatus Status { + get { return status_; } + set { + status_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Protobuf_Login_RESP); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Protobuf_Login_RESP other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (Token != other.Token) return false; + if (LastLoginDate != other.LastLoginDate) return false; + if (RegDate != other.RegDate) return false; + if (Status != other.Status) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (Token.Length != 0) hash ^= Token.GetHashCode(); + if (LastLoginDate.Length != 0) hash ^= LastLoginDate.GetHashCode(); + if (RegDate.Length != 0) hash ^= RegDate.GetHashCode(); + if (Status != global::AxibugProtobuf.LoginResultStatus.BaseDefault) hash ^= Status.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (Token.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Token); + } + if (LastLoginDate.Length != 0) { + output.WriteRawTag(18); + output.WriteString(LastLoginDate); + } + if (RegDate.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RegDate); + } + if (Status != global::AxibugProtobuf.LoginResultStatus.BaseDefault) { + output.WriteRawTag(32); + output.WriteEnum((int) Status); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (Token.Length != 0) { + output.WriteRawTag(10); + output.WriteString(Token); + } + if (LastLoginDate.Length != 0) { + output.WriteRawTag(18); + output.WriteString(LastLoginDate); + } + if (RegDate.Length != 0) { + output.WriteRawTag(26); + output.WriteString(RegDate); + } + if (Status != global::AxibugProtobuf.LoginResultStatus.BaseDefault) { + output.WriteRawTag(32); + output.WriteEnum((int) Status); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (Token.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(Token); + } + if (LastLoginDate.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(LastLoginDate); + } + if (RegDate.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(RegDate); + } + if (Status != global::AxibugProtobuf.LoginResultStatus.BaseDefault) { + size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Protobuf_Login_RESP other) { + if (other == null) { + return; + } + if (other.Token.Length != 0) { + Token = other.Token; + } + if (other.LastLoginDate.Length != 0) { + LastLoginDate = other.LastLoginDate; + } + if (other.RegDate.Length != 0) { + RegDate = other.RegDate; + } + if (other.Status != global::AxibugProtobuf.LoginResultStatus.BaseDefault) { + Status = other.Status; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + Token = input.ReadString(); + break; + } + case 18: { + LastLoginDate = input.ReadString(); + break; + } + case 26: { + RegDate = input.ReadString(); + break; + } + case 32: { + Status = (global::AxibugProtobuf.LoginResultStatus) input.ReadEnum(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + Token = input.ReadString(); + break; + } + case 18: { + LastLoginDate = input.ReadString(); + break; + } + case 26: { + RegDate = input.ReadString(); + break; + } + case 32: { + Status = (global::AxibugProtobuf.LoginResultStatus) input.ReadEnum(); + break; + } + } + } + } + #endif + + } + + /// + ///é…置下行 + /// + public sealed partial class Protobuf_Cfgs : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_Cfgs()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::AxibugProtobuf.ProtobufNoSugarReflection.Descriptor.MessageTypes[2]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_Cfgs() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_Cfgs(Protobuf_Cfgs other) : this() { + compressAdapterType_ = other.compressAdapterType_; + cfgs_ = other.cfgs_.Clone(); + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_Cfgs Clone() { + return new Protobuf_Cfgs(this); + } + + /// Field number for the "CompressAdapterType" field. + public const int CompressAdapterTypeFieldNumber = 1; + private int compressAdapterType_; + /// + ///压缩类型 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CompressAdapterType { + get { return compressAdapterType_; } + set { + compressAdapterType_ = value; + } + } + + /// Field number for the "cfgs" field. + public const int CfgsFieldNumber = 2; + private static readonly pb::FieldCodec _repeated_cfgs_codec + = pb::FieldCodec.ForMessage(18, global::AxibugProtobuf.Protobuf_Cfgs_Single.Parser); + private readonly pbc::RepeatedField cfgs_ = new pbc::RepeatedField(); + /// + ///é…ç½® + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pbc::RepeatedField Cfgs { + get { return cfgs_; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Protobuf_Cfgs); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Protobuf_Cfgs other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (CompressAdapterType != other.CompressAdapterType) return false; + if(!cfgs_.Equals(other.cfgs_)) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (CompressAdapterType != 0) hash ^= CompressAdapterType.GetHashCode(); + hash ^= cfgs_.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (CompressAdapterType != 0) { + output.WriteRawTag(8); + output.WriteInt32(CompressAdapterType); + } + cfgs_.WriteTo(output, _repeated_cfgs_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (CompressAdapterType != 0) { + output.WriteRawTag(8); + output.WriteInt32(CompressAdapterType); + } + cfgs_.WriteTo(ref output, _repeated_cfgs_codec); + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (CompressAdapterType != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(CompressAdapterType); + } + size += cfgs_.CalculateSize(_repeated_cfgs_codec); + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Protobuf_Cfgs other) { + if (other == null) { + return; + } + if (other.CompressAdapterType != 0) { + CompressAdapterType = other.CompressAdapterType; + } + cfgs_.Add(other.cfgs_); + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + CompressAdapterType = input.ReadInt32(); + break; + } + case 18: { + cfgs_.AddEntriesFrom(input, _repeated_cfgs_codec); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + CompressAdapterType = input.ReadInt32(); + break; + } + case 18: { + cfgs_.AddEntriesFrom(ref input, _repeated_cfgs_codec); + break; + } + } + } + } + #endif + + } + + public sealed partial class Protobuf_Cfgs_Single : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_Cfgs_Single()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::AxibugProtobuf.ProtobufNoSugarReflection.Descriptor.MessageTypes[3]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_Cfgs_Single() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_Cfgs_Single(Protobuf_Cfgs_Single other) : this() { + tunnelID_ = other.tunnelID_; + port_ = other.port_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_Cfgs_Single Clone() { + return new Protobuf_Cfgs_Single(this); + } + + /// Field number for the "TunnelID" field. + public const int TunnelIDFieldNumber = 1; + private uint tunnelID_; + /// + ///TunnelID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint TunnelID { + get { return tunnelID_; } + set { + tunnelID_ = value; + } + } + + /// Field number for the "Port" field. + public const int PortFieldNumber = 2; + private int port_; + /// + ///ç«¯å£ + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int Port { + get { return port_; } + set { + port_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Protobuf_Cfgs_Single); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Protobuf_Cfgs_Single other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TunnelID != other.TunnelID) return false; + if (Port != other.Port) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (TunnelID != 0) hash ^= TunnelID.GetHashCode(); + if (Port != 0) hash ^= Port.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Port != 0) { + output.WriteRawTag(16); + output.WriteInt32(Port); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Port != 0) { + output.WriteRawTag(16); + output.WriteInt32(Port); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (TunnelID != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TunnelID); + } + if (Port != 0) { + size += 1 + pb::CodedOutputStream.ComputeInt32Size(Port); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Protobuf_Cfgs_Single other) { + if (other == null) { + return; + } + if (other.TunnelID != 0) { + TunnelID = other.TunnelID; + } + if (other.Port != 0) { + Port = other.Port; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Port = input.ReadInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Port = input.ReadInt32(); + break; + } + } + } + } + #endif + + } + + /// + ///èŠå¤© 上行 + /// + public sealed partial class Protobuf_ChatMsg : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_ChatMsg()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::AxibugProtobuf.ProtobufNoSugarReflection.Descriptor.MessageTypes[4]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_ChatMsg() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_ChatMsg(Protobuf_ChatMsg other) : this() { + chatMsg_ = other.chatMsg_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_ChatMsg Clone() { + return new Protobuf_ChatMsg(this); + } + + /// Field number for the "ChatMsg" field. + public const int ChatMsgFieldNumber = 1; + private string chatMsg_ = ""; + /// + ///æ¶ˆæ¯ + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string ChatMsg { + get { return chatMsg_; } + set { + chatMsg_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Protobuf_ChatMsg); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Protobuf_ChatMsg other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (ChatMsg != other.ChatMsg) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (ChatMsg.Length != 0) hash ^= ChatMsg.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (ChatMsg.Length != 0) { + output.WriteRawTag(10); + output.WriteString(ChatMsg); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (ChatMsg.Length != 0) { + output.WriteRawTag(10); + output.WriteString(ChatMsg); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (ChatMsg.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ChatMsg); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Protobuf_ChatMsg other) { + if (other == null) { + return; + } + if (other.ChatMsg.Length != 0) { + ChatMsg = other.ChatMsg; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + ChatMsg = input.ReadString(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + ChatMsg = input.ReadString(); + break; + } + } + } + } + #endif + + } + + /// + ///èŠå¤© 下行 + /// + public sealed partial class Protobuf_ChatMsg_RESP : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_ChatMsg_RESP()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::AxibugProtobuf.ProtobufNoSugarReflection.Descriptor.MessageTypes[5]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_ChatMsg_RESP() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_ChatMsg_RESP(Protobuf_ChatMsg_RESP other) : this() { + nickName_ = other.nickName_; + chatMsg_ = other.chatMsg_; + date_ = other.date_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_ChatMsg_RESP Clone() { + return new Protobuf_ChatMsg_RESP(this); + } + + /// Field number for the "NickName" field. + public const int NickNameFieldNumber = 1; + private string nickName_ = ""; + /// + ///昵称 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string NickName { + get { return nickName_; } + set { + nickName_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "ChatMsg" field. + public const int ChatMsgFieldNumber = 2; + private string chatMsg_ = ""; + /// + ///æ¶ˆæ¯ + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public string ChatMsg { + get { return chatMsg_; } + set { + chatMsg_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + /// Field number for the "Date" field. + public const int DateFieldNumber = 3; + private long date_; + /// + ///时间 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public long Date { + get { return date_; } + set { + date_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Protobuf_ChatMsg_RESP); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Protobuf_ChatMsg_RESP other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (NickName != other.NickName) return false; + if (ChatMsg != other.ChatMsg) return false; + if (Date != other.Date) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (NickName.Length != 0) hash ^= NickName.GetHashCode(); + if (ChatMsg.Length != 0) hash ^= ChatMsg.GetHashCode(); + if (Date != 0L) hash ^= Date.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (NickName.Length != 0) { + output.WriteRawTag(10); + output.WriteString(NickName); + } + if (ChatMsg.Length != 0) { + output.WriteRawTag(18); + output.WriteString(ChatMsg); + } + if (Date != 0L) { + output.WriteRawTag(24); + output.WriteInt64(Date); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (NickName.Length != 0) { + output.WriteRawTag(10); + output.WriteString(NickName); + } + if (ChatMsg.Length != 0) { + output.WriteRawTag(18); + output.WriteString(ChatMsg); + } + if (Date != 0L) { + output.WriteRawTag(24); + output.WriteInt64(Date); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (NickName.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(NickName); + } + if (ChatMsg.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeStringSize(ChatMsg); + } + if (Date != 0L) { + size += 1 + pb::CodedOutputStream.ComputeInt64Size(Date); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Protobuf_ChatMsg_RESP other) { + if (other == null) { + return; + } + if (other.NickName.Length != 0) { + NickName = other.NickName; + } + if (other.ChatMsg.Length != 0) { + ChatMsg = other.ChatMsg; + } + if (other.Date != 0L) { + Date = other.Date; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 10: { + NickName = input.ReadString(); + break; + } + case 18: { + ChatMsg = input.ReadString(); + break; + } + case 24: { + Date = input.ReadInt64(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 10: { + NickName = input.ReadString(); + break; + } + case 18: { + ChatMsg = input.ReadString(); + break; + } + case 24: { + Date = input.ReadInt64(); + break; + } + } + } + } + #endif + + } + + public sealed partial class Protobuf_C2S_Connect : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_C2S_Connect()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::AxibugProtobuf.ProtobufNoSugarReflection.Descriptor.MessageTypes[6]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_C2S_Connect() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_C2S_Connect(Protobuf_C2S_Connect other) : this() { + tunnelID_ = other.tunnelID_; + idx_ = other.idx_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_C2S_Connect Clone() { + return new Protobuf_C2S_Connect(this); + } + + /// Field number for the "TunnelID" field. + public const int TunnelIDFieldNumber = 1; + private uint tunnelID_; + /// + ///TunnelID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint TunnelID { + get { return tunnelID_; } + set { + tunnelID_ = value; + } + } + + /// Field number for the "Idx" field. + public const int IdxFieldNumber = 2; + private uint idx_; + /// + ///å•ä¸ªéš§é“连接下标 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint Idx { + get { return idx_; } + set { + idx_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Protobuf_C2S_Connect); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Protobuf_C2S_Connect other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TunnelID != other.TunnelID) return false; + if (Idx != other.Idx) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (TunnelID != 0) hash ^= TunnelID.GetHashCode(); + if (Idx != 0) hash ^= Idx.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Idx != 0) { + output.WriteRawTag(16); + output.WriteUInt32(Idx); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Idx != 0) { + output.WriteRawTag(16); + output.WriteUInt32(Idx); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (TunnelID != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TunnelID); + } + if (Idx != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Idx); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Protobuf_C2S_Connect other) { + if (other == null) { + return; + } + if (other.TunnelID != 0) { + TunnelID = other.TunnelID; + } + if (other.Idx != 0) { + Idx = other.Idx; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Idx = input.ReadUInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Idx = input.ReadUInt32(); + break; + } + } + } + } + #endif + + } + + public sealed partial class Protobuf_S2C_Connect : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_S2C_Connect()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::AxibugProtobuf.ProtobufNoSugarReflection.Descriptor.MessageTypes[7]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_S2C_Connect() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_S2C_Connect(Protobuf_S2C_Connect other) : this() { + tunnelID_ = other.tunnelID_; + idx_ = other.idx_; + connected_ = other.connected_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_S2C_Connect Clone() { + return new Protobuf_S2C_Connect(this); + } + + /// Field number for the "TunnelID" field. + public const int TunnelIDFieldNumber = 1; + private uint tunnelID_; + /// + ///TunnelID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint TunnelID { + get { return tunnelID_; } + set { + tunnelID_ = value; + } + } + + /// Field number for the "Idx" field. + public const int IdxFieldNumber = 2; + private uint idx_; + /// + ///å•ä¸ªéš§é“连接下标 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint Idx { + get { return idx_; } + set { + idx_ = value; + } + } + + /// Field number for the "Connected" field. + public const int ConnectedFieldNumber = 3; + private uint connected_; + /// + ///[0]连接失败 [1]连接æˆåŠŸ + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint Connected { + get { return connected_; } + set { + connected_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Protobuf_S2C_Connect); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Protobuf_S2C_Connect other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TunnelID != other.TunnelID) return false; + if (Idx != other.Idx) return false; + if (Connected != other.Connected) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (TunnelID != 0) hash ^= TunnelID.GetHashCode(); + if (Idx != 0) hash ^= Idx.GetHashCode(); + if (Connected != 0) hash ^= Connected.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Idx != 0) { + output.WriteRawTag(16); + output.WriteUInt32(Idx); + } + if (Connected != 0) { + output.WriteRawTag(24); + output.WriteUInt32(Connected); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Idx != 0) { + output.WriteRawTag(16); + output.WriteUInt32(Idx); + } + if (Connected != 0) { + output.WriteRawTag(24); + output.WriteUInt32(Connected); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (TunnelID != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TunnelID); + } + if (Idx != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Idx); + } + if (Connected != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Connected); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Protobuf_S2C_Connect other) { + if (other == null) { + return; + } + if (other.TunnelID != 0) { + TunnelID = other.TunnelID; + } + if (other.Idx != 0) { + Idx = other.Idx; + } + if (other.Connected != 0) { + Connected = other.Connected; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Idx = input.ReadUInt32(); + break; + } + case 24: { + Connected = input.ReadUInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Idx = input.ReadUInt32(); + break; + } + case 24: { + Connected = input.ReadUInt32(); + break; + } + } + } + } + #endif + + } + + public sealed partial class Protobuf_C2S_Disconnect : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_C2S_Disconnect()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::AxibugProtobuf.ProtobufNoSugarReflection.Descriptor.MessageTypes[8]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_C2S_Disconnect() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_C2S_Disconnect(Protobuf_C2S_Disconnect other) : this() { + tunnelID_ = other.tunnelID_; + idx_ = other.idx_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_C2S_Disconnect Clone() { + return new Protobuf_C2S_Disconnect(this); + } + + /// Field number for the "TunnelID" field. + public const int TunnelIDFieldNumber = 1; + private uint tunnelID_; + /// + ///TunnelID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint TunnelID { + get { return tunnelID_; } + set { + tunnelID_ = value; + } + } + + /// Field number for the "Idx" field. + public const int IdxFieldNumber = 2; + private uint idx_; + /// + ///å•ä¸ªéš§é“连接下标 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint Idx { + get { return idx_; } + set { + idx_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Protobuf_C2S_Disconnect); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Protobuf_C2S_Disconnect other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TunnelID != other.TunnelID) return false; + if (Idx != other.Idx) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (TunnelID != 0) hash ^= TunnelID.GetHashCode(); + if (Idx != 0) hash ^= Idx.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Idx != 0) { + output.WriteRawTag(16); + output.WriteUInt32(Idx); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Idx != 0) { + output.WriteRawTag(16); + output.WriteUInt32(Idx); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (TunnelID != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TunnelID); + } + if (Idx != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Idx); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Protobuf_C2S_Disconnect other) { + if (other == null) { + return; + } + if (other.TunnelID != 0) { + TunnelID = other.TunnelID; + } + if (other.Idx != 0) { + Idx = other.Idx; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Idx = input.ReadUInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Idx = input.ReadUInt32(); + break; + } + } + } + } + #endif + + } + + public sealed partial class Protobuf_S2C_Disconnect : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_S2C_Disconnect()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::AxibugProtobuf.ProtobufNoSugarReflection.Descriptor.MessageTypes[9]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_S2C_Disconnect() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_S2C_Disconnect(Protobuf_S2C_Disconnect other) : this() { + tunnelID_ = other.tunnelID_; + idx_ = other.idx_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_S2C_Disconnect Clone() { + return new Protobuf_S2C_Disconnect(this); + } + + /// Field number for the "TunnelID" field. + public const int TunnelIDFieldNumber = 1; + private uint tunnelID_; + /// + ///TunnelID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint TunnelID { + get { return tunnelID_; } + set { + tunnelID_ = value; + } + } + + /// Field number for the "Idx" field. + public const int IdxFieldNumber = 2; + private uint idx_; + /// + ///å•ä¸ªéš§é“连接下标 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint Idx { + get { return idx_; } + set { + idx_ = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Protobuf_S2C_Disconnect); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Protobuf_S2C_Disconnect other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TunnelID != other.TunnelID) return false; + if (Idx != other.Idx) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (TunnelID != 0) hash ^= TunnelID.GetHashCode(); + if (Idx != 0) hash ^= Idx.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Idx != 0) { + output.WriteRawTag(16); + output.WriteUInt32(Idx); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Idx != 0) { + output.WriteRawTag(16); + output.WriteUInt32(Idx); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (TunnelID != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TunnelID); + } + if (Idx != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Idx); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Protobuf_S2C_Disconnect other) { + if (other == null) { + return; + } + if (other.TunnelID != 0) { + TunnelID = other.TunnelID; + } + if (other.Idx != 0) { + Idx = other.Idx; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Idx = input.ReadUInt32(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Idx = input.ReadUInt32(); + break; + } + } + } + } + #endif + + } + + public sealed partial class Protobuf_C2S_DATA : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_C2S_DATA()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::AxibugProtobuf.ProtobufNoSugarReflection.Descriptor.MessageTypes[10]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_C2S_DATA() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_C2S_DATA(Protobuf_C2S_DATA other) : this() { + tunnelID_ = other.tunnelID_; + idx_ = other.idx_; + hunterNetCoreData_ = other.hunterNetCoreData_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_C2S_DATA Clone() { + return new Protobuf_C2S_DATA(this); + } + + /// Field number for the "TunnelID" field. + public const int TunnelIDFieldNumber = 1; + private uint tunnelID_; + /// + ///TunnelID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint TunnelID { + get { return tunnelID_; } + set { + tunnelID_ = value; + } + } + + /// Field number for the "Idx" field. + public const int IdxFieldNumber = 2; + private uint idx_; + /// + ///å•ä¸ªéš§é“连接下标 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint Idx { + get { return idx_; } + set { + idx_ = value; + } + } + + /// Field number for the "HunterNetCore_Data" field. + public const int HunterNetCoreDataFieldNumber = 3; + private pb::ByteString hunterNetCoreData_ = pb::ByteString.Empty; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pb::ByteString HunterNetCoreData { + get { return hunterNetCoreData_; } + set { + hunterNetCoreData_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Protobuf_C2S_DATA); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Protobuf_C2S_DATA other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TunnelID != other.TunnelID) return false; + if (Idx != other.Idx) return false; + if (HunterNetCoreData != other.HunterNetCoreData) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (TunnelID != 0) hash ^= TunnelID.GetHashCode(); + if (Idx != 0) hash ^= Idx.GetHashCode(); + if (HunterNetCoreData.Length != 0) hash ^= HunterNetCoreData.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Idx != 0) { + output.WriteRawTag(16); + output.WriteUInt32(Idx); + } + if (HunterNetCoreData.Length != 0) { + output.WriteRawTag(26); + output.WriteBytes(HunterNetCoreData); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Idx != 0) { + output.WriteRawTag(16); + output.WriteUInt32(Idx); + } + if (HunterNetCoreData.Length != 0) { + output.WriteRawTag(26); + output.WriteBytes(HunterNetCoreData); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (TunnelID != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TunnelID); + } + if (Idx != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Idx); + } + if (HunterNetCoreData.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeBytesSize(HunterNetCoreData); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Protobuf_C2S_DATA other) { + if (other == null) { + return; + } + if (other.TunnelID != 0) { + TunnelID = other.TunnelID; + } + if (other.Idx != 0) { + Idx = other.Idx; + } + if (other.HunterNetCoreData.Length != 0) { + HunterNetCoreData = other.HunterNetCoreData; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Idx = input.ReadUInt32(); + break; + } + case 26: { + HunterNetCoreData = input.ReadBytes(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Idx = input.ReadUInt32(); + break; + } + case 26: { + HunterNetCoreData = input.ReadBytes(); + break; + } + } + } + } + #endif + + } + + public sealed partial class Protobuf_S2C_DATA : pb::IMessage + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + , pb::IBufferMessage + #endif + { + private static readonly pb::MessageParser _parser = new pb::MessageParser(() => new Protobuf_S2C_DATA()); + private pb::UnknownFieldSet _unknownFields; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pb::MessageParser Parser { get { return _parser; } } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public static pbr::MessageDescriptor Descriptor { + get { return global::AxibugProtobuf.ProtobufNoSugarReflection.Descriptor.MessageTypes[11]; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + pbr::MessageDescriptor pb::IMessage.Descriptor { + get { return Descriptor; } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_S2C_DATA() { + OnConstruction(); + } + + partial void OnConstruction(); + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_S2C_DATA(Protobuf_S2C_DATA other) : this() { + tunnelID_ = other.tunnelID_; + idx_ = other.idx_; + hunterNetCoreData_ = other.hunterNetCoreData_; + _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public Protobuf_S2C_DATA Clone() { + return new Protobuf_S2C_DATA(this); + } + + /// Field number for the "TunnelID" field. + public const int TunnelIDFieldNumber = 1; + private uint tunnelID_; + /// + ///TunnelID + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint TunnelID { + get { return tunnelID_; } + set { + tunnelID_ = value; + } + } + + /// Field number for the "Idx" field. + public const int IdxFieldNumber = 2; + private uint idx_; + /// + ///å•ä¸ªéš§é“连接下标 + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public uint Idx { + get { return idx_; } + set { + idx_ = value; + } + } + + /// Field number for the "HunterNetCore_Data" field. + public const int HunterNetCoreDataFieldNumber = 3; + private pb::ByteString hunterNetCoreData_ = pb::ByteString.Empty; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public pb::ByteString HunterNetCoreData { + get { return hunterNetCoreData_; } + set { + hunterNetCoreData_ = pb::ProtoPreconditions.CheckNotNull(value, "value"); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override bool Equals(object other) { + return Equals(other as Protobuf_S2C_DATA); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public bool Equals(Protobuf_S2C_DATA other) { + if (ReferenceEquals(other, null)) { + return false; + } + if (ReferenceEquals(other, this)) { + return true; + } + if (TunnelID != other.TunnelID) return false; + if (Idx != other.Idx) return false; + if (HunterNetCoreData != other.HunterNetCoreData) return false; + return Equals(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override int GetHashCode() { + int hash = 1; + if (TunnelID != 0) hash ^= TunnelID.GetHashCode(); + if (Idx != 0) hash ^= Idx.GetHashCode(); + if (HunterNetCoreData.Length != 0) hash ^= HunterNetCoreData.GetHashCode(); + if (_unknownFields != null) { + hash ^= _unknownFields.GetHashCode(); + } + return hash; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public override string ToString() { + return pb::JsonFormatter.ToDiagnosticString(this); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void WriteTo(pb::CodedOutputStream output) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + output.WriteRawMessage(this); + #else + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Idx != 0) { + output.WriteRawTag(16); + output.WriteUInt32(Idx); + } + if (HunterNetCoreData.Length != 0) { + output.WriteRawTag(26); + output.WriteBytes(HunterNetCoreData); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(output); + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) { + if (TunnelID != 0) { + output.WriteRawTag(8); + output.WriteUInt32(TunnelID); + } + if (Idx != 0) { + output.WriteRawTag(16); + output.WriteUInt32(Idx); + } + if (HunterNetCoreData.Length != 0) { + output.WriteRawTag(26); + output.WriteBytes(HunterNetCoreData); + } + if (_unknownFields != null) { + _unknownFields.WriteTo(ref output); + } + } + #endif + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public int CalculateSize() { + int size = 0; + if (TunnelID != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(TunnelID); + } + if (Idx != 0) { + size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Idx); + } + if (HunterNetCoreData.Length != 0) { + size += 1 + pb::CodedOutputStream.ComputeBytesSize(HunterNetCoreData); + } + if (_unknownFields != null) { + size += _unknownFields.CalculateSize(); + } + return size; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(Protobuf_S2C_DATA other) { + if (other == null) { + return; + } + if (other.TunnelID != 0) { + TunnelID = other.TunnelID; + } + if (other.Idx != 0) { + Idx = other.Idx; + } + if (other.HunterNetCoreData.Length != 0) { + HunterNetCoreData = other.HunterNetCoreData; + } + _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + public void MergeFrom(pb::CodedInputStream input) { + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + input.ReadRawMessage(this); + #else + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Idx = input.ReadUInt32(); + break; + } + case 26: { + HunterNetCoreData = input.ReadBytes(); + break; + } + } + } + #endif + } + + #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE + [global::System.Diagnostics.DebuggerNonUserCodeAttribute] + void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) { + uint tag; + while ((tag = input.ReadTag()) != 0) { + switch(tag) { + default: + _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input); + break; + case 8: { + TunnelID = input.ReadUInt32(); + break; + } + case 16: { + Idx = input.ReadUInt32(); + break; + } + case 26: { + HunterNetCoreData = input.ReadBytes(); + break; + } + } + } + } + #endif + + } + + #endregion + +} + +#endregion Designer generated code diff --git a/NoSugarNet.ClientCore/AppNoSugarNet.cs b/NoSugarNet.ClientCore/AppNoSugarNet.cs index faaaf2d..0ea2f24 100644 --- a/NoSugarNet.ClientCore/AppNoSugarNet.cs +++ b/NoSugarNet.ClientCore/AppNoSugarNet.cs @@ -26,7 +26,7 @@ namespace NoSugarNet.ClientCore public static event OnUpdateStatusHandler OnUpdateStatus; #endregion - public static void Init(string IP, int port, OnLogHandler onLog = null) + public static void Init(OnLogHandler onLog = null) { log = new LogManager(); if(onLog != null) @@ -37,14 +37,26 @@ namespace NoSugarNet.ClientCore local = new AppLocalClient(); user = new UserDataManager(); netStatus = new NetStatus(); + _SpeedCheckTimeTimer = new System.Timers.Timer(); + _SpeedCheckTimeTimer.Interval = TimerInterval; + _SpeedCheckTimeTimer.Elapsed += Checktimer_Elapsed; + _SpeedCheckTimeTimer.AutoReset = true; + } + + public static void Connect(string IP, int port) + { if (networkHelper.Init(IP, port)) - { - _SpeedCheckTimeTimer = new System.Timers.Timer(); - _SpeedCheckTimeTimer.Interval = TimerInterval; - _SpeedCheckTimeTimer.Elapsed += Checktimer_Elapsed; - _SpeedCheckTimeTimer.AutoReset = true; - _SpeedCheckTimeTimer.Enabled = true; - } + _SpeedCheckTimeTimer.Enabled = true; + else + _SpeedCheckTimeTimer.Enabled = false; + } + + public static void Close() + { + local.StopAll(); + networkHelper.CloseConntect(); + AppNoSugarNet.log.Info("åœæ­¢"); + _SpeedCheckTimeTimer.Enabled = false; } static void Checktimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) @@ -66,7 +78,6 @@ namespace NoSugarNet.ClientCore tReciveSecSpeed = (local.tReciveAllLenght - netStatus.tReciveAllLenght) / (TimerInterval / 1000), }; netStatus = resutnetStatus; - OnUpdateStatus?.Invoke(resutnetStatus); } } diff --git a/NoSugarNet.ClientCore/Manager/AppLocalClient.cs b/NoSugarNet.ClientCore/Manager/AppLocalClient.cs index 919fb58..f7000c5 100644 --- a/NoSugarNet.ClientCore/Manager/AppLocalClient.cs +++ b/NoSugarNet.ClientCore/Manager/AppLocalClient.cs @@ -54,13 +54,13 @@ namespace ServerCore.Manager /// void InitListenerMode() { - AppNoSugarNet.log.Debug("åˆå§‹åŒ–压缩适é…器" + compressAdapterType); + AppNoSugarNet.log.Info("åˆå§‹åŒ–压缩适é…器" + compressAdapterType); //åˆå§‹åŒ–压缩适é…器,代表压缩类型 mCompressAdapter = new CompressAdapter(compressAdapterType); foreach (var cfg in mDictTunnelID2Cfg) { LocalListener listener = new LocalListener(256, 1024, cfg.Key); - AppNoSugarNet.log.Debug($"开始监å¬é…ç½® Tunnel:{cfg.Key},Port:{cfg.Value.Port}"); + AppNoSugarNet.log.Info($"开始监å¬é…ç½® Tunnel:{cfg.Key},Port:{cfg.Value.Port}"); listener.Init(); listener.Start(new IPEndPoint(IPAddress.Any.Address, (int)cfg.Value.Port)); //listener.Init((int)cfg.Value.Port); @@ -249,7 +249,7 @@ namespace ServerCore.Manager /// public void OnServerLocalDataCallBack(byte tunnelId,byte Idx, byte[] data) { - //AppNoSugarNet.log.Debug($"OnServerLocalDataCallBack {tunnelId},{Idx},Data长度:{data.Length}"); + //AppNoSugarNet.log.Info($"OnServerLocalDataCallBack {tunnelId},{Idx},Data长度:{data.Length}"); if (!GetLocalListener(tunnelId, out LocalListener _listener)) return; //记录压缩å‰æ•°æ®é•¿åº¦ @@ -266,7 +266,7 @@ namespace ServerCore.Manager /// public void OnClientTunnelDataCallBack(byte tunnelId,byte Idx, byte[] data) { - //AppNoSugarNet.log.Debug($"OnClientTunnelDataCallBack {tunnelId},{Idx}"); + //AppNoSugarNet.log.Info($"OnClientTunnelDataCallBack {tunnelId},{Idx}"); int SlienLenght = 1000; //判断数æ®é‡å¤§æ—¶åˆ†åŒ… diff --git a/NoSugarNet.ClientCore/Manager/AppLogin.cs b/NoSugarNet.ClientCore/Manager/AppLogin.cs index 79431f3..73a013b 100644 --- a/NoSugarNet.ClientCore/Manager/AppLogin.cs +++ b/NoSugarNet.ClientCore/Manager/AppLogin.cs @@ -25,12 +25,12 @@ namespace NoSugarNet.ClientCore.Manager Protobuf_Login_RESP msg = ProtoBufHelper.DeSerizlize(reqData); if (msg.Status == LoginResultStatus.Ok) { - AppNoSugarNet.log.Debug("登录æˆåŠŸ"); + AppNoSugarNet.log.Info("登录æˆåŠŸ"); AppNoSugarNet.user.InitMainUserData(AppNoSugarNet.user.userdata.Account); } else { - AppNoSugarNet.log.Debug("登录失败"); + AppNoSugarNet.log.Info("登录失败"); } } diff --git a/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener.cs b/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener.cs index f4f4987..5501e4d 100644 --- a/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener.cs +++ b/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener.cs @@ -21,7 +21,7 @@ namespace NoSugarNet.ClientCore private void ClientNumberChange(int num, AsyncUserToken token) { - AppNoSugarNet.log.Debug("Clientæ•°å‘生å˜åŒ–"); + AppNoSugarNet.log.Info("Clientæ•°å‘生å˜åŒ–"); //增加连接数 if (num > 0) { @@ -61,7 +61,7 @@ namespace NoSugarNet.ClientCore public void DataCallBack(Socket sk, byte[] data) { - //AppNoSugarNet.log.Debug("æ”¶åˆ°æ¶ˆæ¯ æ•°æ®é•¿åº¦=>" + data.Length); + //AppNoSugarNet.log.Info("æ”¶åˆ°æ¶ˆæ¯ æ•°æ®é•¿åº¦=>" + data.Length); //记录接å—长度 mReciveAllLenght += data.Length; if (!GetSocketIdxBySocket(sk, out int Idx)) @@ -73,7 +73,7 @@ namespace NoSugarNet.ClientCore } catch (Exception ex) { - AppNoSugarNet.log.Debug("逻辑处ç†é”™è¯¯ï¼š" + ex.ToString()); + AppNoSugarNet.log.Info("逻辑处ç†é”™è¯¯ï¼š" + ex.ToString()); } } @@ -91,7 +91,7 @@ namespace NoSugarNet.ClientCore /// public void OnDisconnect(AsyncUserToken token) { - AppNoSugarNet.log.Debug("断开连接"); + AppNoSugarNet.log.Info("断开连接"); if (!GetSocketIdxBySocket(token.Socket, out int Idx)) return; @@ -102,7 +102,7 @@ namespace NoSugarNet.ClientCore public void OnShowNetLog(string msg) { - AppNoSugarNet.log.Debug(msg); + AppNoSugarNet.log.Info(msg); } #region 一个轻é‡çº§æ— ç”¨æˆ·è¿žæŽ¥ç®¡ç† @@ -205,9 +205,9 @@ namespace NoSugarNet.ClientCore if (!GetSocketByIdx(Idx, out LocalClientInfo _localClientInfo)) return; if (bConnected) - AppNoSugarNet.log.Debug("远端本地连接已连接ï¼ï¼ï¼ï¼"); + AppNoSugarNet.log.Info("远端本地连接已连接ï¼ï¼ï¼ï¼"); else - AppNoSugarNet.log.Debug("远端本地连接已断开连接ï¼ï¼ï¼ï¼"); + AppNoSugarNet.log.Info("远端本地连接已断开连接ï¼ï¼ï¼ï¼"); _localClientInfo.bRemoteConnect = bConnected; } diff --git a/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener_Source.cs b/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener_Source.cs index 40912ce..163b2c7 100644 --- a/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener_Source.cs +++ b/NoSugarNet.ClientCore/Manager/LocalClient/LocalListener_Source.cs @@ -22,7 +22,7 @@ namespace NoSugarNet.ClientCore private void ClientNumberChange(Socket socket) { - AppNoSugarNet.log.Debug("Clientæ•°å‘生å˜åŒ–"); + AppNoSugarNet.log.Info("Clientæ•°å‘生å˜åŒ–"); //增加连接数 int Idx = AddDictSocket(socket); if (GetSocketByIdx(Idx, out LocalClientInfo _localClientInf)) @@ -59,7 +59,7 @@ namespace NoSugarNet.ClientCore public void DataCallBack(Socket sk, byte[] data) { - //AppNoSugarNet.log.Debug("æ”¶åˆ°æ¶ˆæ¯ æ•°æ®é•¿åº¦=>" + data.Length); + //AppNoSugarNet.log.Info("æ”¶åˆ°æ¶ˆæ¯ æ•°æ®é•¿åº¦=>" + data.Length); //记录接å—长度 mReciveAllLenght += data.Length; if (!GetSocketIdxBySocket(sk, out int Idx)) @@ -83,7 +83,7 @@ namespace NoSugarNet.ClientCore } catch (Exception ex) { - AppNoSugarNet.log.Debug("逻辑处ç†é”™è¯¯ï¼š" + ex.ToString()); + AppNoSugarNet.log.Info("逻辑处ç†é”™è¯¯ï¼š" + ex.ToString()); } } @@ -101,7 +101,7 @@ namespace NoSugarNet.ClientCore /// public void OnDisconnectClient(Socket sk) { - AppNoSugarNet.log.Debug("断开连接"); + AppNoSugarNet.log.Info("断开连接"); if (!GetSocketIdxBySocket(sk, out int Idx)) return; @@ -112,7 +112,7 @@ namespace NoSugarNet.ClientCore public void OnShowNetLog(string msg) { - AppNoSugarNet.log.Debug(msg); + AppNoSugarNet.log.Info(msg); } #region 一个轻é‡çº§æ— ç”¨æˆ·è¿žæŽ¥ç®¡ç† @@ -233,9 +233,9 @@ namespace NoSugarNet.ClientCore if (!GetSocketByIdx(Idx, out LocalClientInfo _localClientInfo)) return; if (bConnected) - AppNoSugarNet.log.Debug("远端本地连接已连接ï¼ï¼ï¼ï¼"); + AppNoSugarNet.log.Info("远端本地连接已连接ï¼ï¼ï¼ï¼"); else - AppNoSugarNet.log.Debug("远端本地连接已断开连接ï¼ï¼ï¼ï¼"); + AppNoSugarNet.log.Info("远端本地连接已断开连接ï¼ï¼ï¼ï¼"); _localClientInfo.bRemoteConnect = bConnected; } diff --git a/NoSugarNet.ClientCore/Manager/LocalClient/LocalMsgQueuePool.cs b/NoSugarNet.ClientCore/Manager/LocalClient/LocalMsgQueuePool.cs index 1a80ff0..4f832b0 100644 --- a/NoSugarNet.ClientCore/Manager/LocalClient/LocalMsgQueuePool.cs +++ b/NoSugarNet.ClientCore/Manager/LocalClient/LocalMsgQueuePool.cs @@ -1,4 +1,4 @@ -namespace HaoYueNet.ServerNetwork +namespace NoSugarNet.ClientCore { public class IdxWithMsg { diff --git a/NoSugarNet.ClientCore/Manager/LogManager.cs b/NoSugarNet.ClientCore/Manager/LogManager.cs index f07fd60..8b2a504 100644 --- a/NoSugarNet.ClientCore/Manager/LogManager.cs +++ b/NoSugarNet.ClientCore/Manager/LogManager.cs @@ -2,6 +2,13 @@ { public class LogManager { + public enum E_LogType:byte + { + Info = 0, + Debug = 1, + Warning = 2, + Error = 3, + } /// /// 日志 /// @@ -13,19 +20,29 @@ /// public static event OnLogHandler OnLog; + public void Info(string str) + { + Log(E_LogType.Info, str); + } + public void Debug(string str) { - OnLog?.Invoke(0,str); + Log(E_LogType.Debug, str); } public void Warning(string str) { - OnLog?.Invoke(1,str); + Log(E_LogType.Warning, str); } public void Error(string str) { - OnLog?.Invoke(2,str); + Log(E_LogType.Error, str); + } + + public void Log(E_LogType logtype,string str) + { + OnLog?.Invoke((int)logtype, str); } } } \ No newline at end of file diff --git a/NoSugarNet.ClientCore/Network/NetworkHelper.cs b/NoSugarNet.ClientCore/Network/NetworkHelper.cs index 5950979..430c587 100644 --- a/NoSugarNet.ClientCore/Network/NetworkHelper.cs +++ b/NoSugarNet.ClientCore/Network/NetworkHelper.cs @@ -60,7 +60,7 @@ namespace NoSugarNet.ClientCore.Network { //用于Unity内的输出 //Debug.Log("NetCoreDebug >> "+str); - AppNoSugarNet.log.Debug("NetCoreDebug >> " + str); + AppNoSugarNet.log.Info("NetCoreDebug >> " + str); } /// @@ -114,13 +114,13 @@ namespace NoSugarNet.ClientCore.Network { //等待时间 Thread.Sleep(ReConnectTryTime); - AppNoSugarNet.log.Debug($"å°è¯•è‡ªåŠ¨é‡è¿ž{LastConnectIP}:{LastConnectPort}……"); + AppNoSugarNet.log.Info($"å°è¯•è‡ªåŠ¨é‡è¿ž{LastConnectIP}:{LastConnectPort}……"); //第一步 if (Init(LastConnectIP, LastConnectPort)) { - AppNoSugarNet.log.Debug($"自动é‡è¿žæˆåŠŸ!"); + AppNoSugarNet.log.Info($"自动é‡è¿žæˆåŠŸ!"); bflagDone = true; - AppNoSugarNet.log.Debug($"触å‘é‡è¿žåŽçš„自动逻辑!"); + AppNoSugarNet.log.Info($"触å‘é‡è¿žåŽçš„自动逻辑!"); OnReConnected?.Invoke(); } } while (!bflagDone); diff --git a/NoSugarNet.ClientCore/NoSugarNet.ClientCore.csproj b/NoSugarNet.ClientCore/NoSugarNet.ClientCore.csproj index 2304238..b70b7b3 100644 --- a/NoSugarNet.ClientCore/NoSugarNet.ClientCore.csproj +++ b/NoSugarNet.ClientCore/NoSugarNet.ClientCore.csproj @@ -4,11 +4,7 @@ net8.0 enable enable - - - - - + @@ -20,6 +16,9 @@ ..\Lib\HaoYueNet.ServerNetwork.dll + + ..\Lib\NoSugarNet.DataHelper.dll + diff --git a/NoSugarNet.DataHelper/Common/CompressAdapter.cs b/NoSugarNet.DataHelper/Common/CompressAdapter.cs index e22ab8f..80bbd0f 100644 --- a/NoSugarNet.DataHelper/Common/CompressAdapter.cs +++ b/NoSugarNet.DataHelper/Common/CompressAdapter.cs @@ -1,4 +1,5 @@ -using System.IO.Compression; +using System.IO; +using System.IO.Compression; namespace NoSugarNet.DataHelper { @@ -49,8 +50,8 @@ namespace NoSugarNet.DataHelper public interface IDataCompress { - public byte[] Compress(byte[] data); - public byte[] Decompress(byte[] data); + byte[] Compress(byte[] data); + byte[] Decompress(byte[] data); } public class NoCompress : IDataCompress diff --git a/NoSugarNet.DataHelper/NoSugarNet.DataHelper.csproj b/NoSugarNet.DataHelper/NoSugarNet.DataHelper.csproj index fa71b7a..ad3ae5d 100644 --- a/NoSugarNet.DataHelper/NoSugarNet.DataHelper.csproj +++ b/NoSugarNet.DataHelper/NoSugarNet.DataHelper.csproj @@ -1,9 +1,9 @@  - - net8.0 - enable - enable + netstandard2.0 - - + + + 8.0 + + \ No newline at end of file diff --git a/NoSugarNet.DataHelper/NoSugarNet.DataHelper.csproj.user b/NoSugarNet.DataHelper/NoSugarNet.DataHelper.csproj.user new file mode 100644 index 0000000..403e972 --- /dev/null +++ b/NoSugarNet.DataHelper/NoSugarNet.DataHelper.csproj.user @@ -0,0 +1,6 @@ + + + + <_LastSelectedProfileId>F:\Sin365\NoSugarNet\NoSugarNet.DataHelper\Properties\PublishProfiles\FolderProfile.pubxml + + \ No newline at end of file diff --git a/NoSugarNet.sln b/NoSugarNet.sln index a77fd95..fccbf7b 100644 --- a/NoSugarNet.sln +++ b/NoSugarNet.sln @@ -22,16 +22,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NoSugarNet.ServerCli", "Sam EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NoSugarNet.DataHelper", "NoSugarNet.DataHelper\NoSugarNet.DataHelper.csproj", "{3C41B685-B46B-4057-826B-C8C6F395BFA8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Net4X", "Net4X", "{4A660CAE-CD92-411C-9D8E-7CB677DB3C74}" - ProjectSection(SolutionItems) = preProject - Lib\Net4x\HaoYueNet.ClientNetworkNet4x.dll = Lib\Net4x\HaoYueNet.ClientNetworkNet4x.dll - Lib\Net4x\HaoYueNet.ServerNetworkNet4x.dll = Lib\Net4x\HaoYueNet.ServerNetworkNet4x.dll - Lib\Net4x\System.Buffers.dll = Lib\Net4x\System.Buffers.dll - Lib\Net4x\System.Memory.dll = Lib\Net4x\System.Memory.dll - Lib\Net4x\System.Runtime.CompilerServices.Unsafe.dll = Lib\Net4x\System.Runtime.CompilerServices.Unsafe.dll - EndProjectSection +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NetLib_Standard2", "NetLib_Standard2", "{4A660CAE-CD92-411C-9D8E-7CB677DB3C74}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NoSugarNet.ClientCoreNet4x", "NoSugarNet.ClientCoreNet4x\NoSugarNet.ClientCoreNet4x.csproj", "{F565C3B8-E210-45F5-9B9E-8C1A49438753}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NoSugarNet.ClientCore.Standard2", "NoSugarNet.ClientCore.Standard2\NoSugarNet.ClientCore.Standard2.csproj", "{5DB2B608-6F99-430A-99AC-534410393955}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -59,10 +52,10 @@ Global {3C41B685-B46B-4057-826B-C8C6F395BFA8}.Debug|Any CPU.Build.0 = Debug|Any CPU {3C41B685-B46B-4057-826B-C8C6F395BFA8}.Release|Any CPU.ActiveCfg = Release|Any CPU {3C41B685-B46B-4057-826B-C8C6F395BFA8}.Release|Any CPU.Build.0 = Release|Any CPU - {F565C3B8-E210-45F5-9B9E-8C1A49438753}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F565C3B8-E210-45F5-9B9E-8C1A49438753}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F565C3B8-E210-45F5-9B9E-8C1A49438753}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F565C3B8-E210-45F5-9B9E-8C1A49438753}.Release|Any CPU.Build.0 = Release|Any CPU + {5DB2B608-6F99-430A-99AC-534410393955}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5DB2B608-6F99-430A-99AC-534410393955}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5DB2B608-6F99-430A-99AC-534410393955}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5DB2B608-6F99-430A-99AC-534410393955}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/NosugarNetForUnity/Assets/MainUI.cs b/NosugarNetForUnity/Assets/MainUI.cs index f433763..d539806 100644 --- a/NosugarNetForUnity/Assets/MainUI.cs +++ b/NosugarNetForUnity/Assets/MainUI.cs @@ -1,4 +1,4 @@ -using NoSugarNet.ClientCoreNet4x; +using NoSugarNet.ClientCoreNet.Standard2; using System; using System.Collections; using System.Collections.Generic; @@ -9,16 +9,32 @@ public class MainUI : MonoBehaviour { public Button btnStart; + public Button btnStop; public InputField inputIP; public InputField inputPort; - public Text textLog; // Start is called before the first frame update void Start() { + + string LastIP = PlayerPrefs.GetString("LastIP"); + string LastPort = PlayerPrefs.GetString("LastPort"); + if(!string.IsNullOrEmpty(LastIP)) + inputIP.text = LastIP; + if (!string.IsNullOrEmpty(LastPort)) + inputPort.text = LastPort; + btnStart.onClick.AddListener(InitNoSugarNetClient); - textLog.text = "-"; - AddLog("123"); + btnStop.onClick.AddListener(StopNoSugarNetClient); + AddLog(""); + + AppNoSugarNet.OnUpdateStatus += OnUpdateStatus; + AppNoSugarNet.Init(OnNoSugarNetLog); + } + + private void OnDisable() + { + AppNoSugarNet.Close(); } // Update is called once per frame @@ -34,8 +50,14 @@ public class MainUI : MonoBehaviour OnNoSugarNetLog(0,"ÅäÖôíÎó"); return; } - AppNoSugarNet.OnUpdateStatus += OnUpdateStatus; - AppNoSugarNet.Init(inputIP.text, Convert.ToInt32(inputPort.text), OnNoSugarNetLog); + + PlayerPrefs.SetString("LastIP", inputIP.text); + PlayerPrefs.GetString("LastPort",inputPort.text); + AppNoSugarNet.Connect(inputIP.text, Convert.ToInt32(inputPort.text)); + } + void StopNoSugarNetClient() + { + AppNoSugarNet.Close(); } @@ -63,7 +85,10 @@ public class MainUI : MonoBehaviour // ÉèÖÃ×ÖÌå´óС style.fontSize = 24; - GUI.TextField(new Rect(10, 300, Screen.width - 20, 1000), logText, style); + style.fontStyle = FontStyle.Bold; + style.normal.textColor = Color.white; + + GUI.TextField(new Rect(10, 400, Screen.width - 20, 1520), logText, style); } static void AddLog(string msg) @@ -72,7 +97,7 @@ public class MainUI : MonoBehaviour logText += string.Format("{0}\n", System.DateTime.Now.ToString("HH:mm:ss> ") + msg); // ÏÞÖÆÎı¾¿òÏÔʾµÄ×î´óÐÐÊý - if (logText.Split('\n').Length > 50) + if (logText.Split('\n').Length > 80) { string[] lines = logText.Split('\n'); logText = ""; diff --git a/NosugarNetForUnity/Assets/MainUI.prefab b/NosugarNetForUnity/Assets/MainUI.prefab index 43be55c..8c78ea9 100644 --- a/NosugarNetForUnity/Assets/MainUI.prefab +++ b/NosugarNetForUnity/Assets/MainUI.prefab @@ -33,12 +33,12 @@ RectTransform: - {fileID: 4996346368674553336} - {fileID: 4996346368210045502} m_Father: {fileID: 4996346368486089535} - m_RootOrder: 2 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -262.22324, y: 820.0001} - m_SizeDelta: {x: 524.4465, y: 156.28} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 282.9455, y: -113.47998} + m_SizeDelta: {x: 534.784, y: 103.25} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4996346366834629249 CanvasRenderer: @@ -138,7 +138,7 @@ MonoBehaviour: m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_CustomCaretColor: 0 m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} - m_Text: 127.0.0.1 + m_Text: 139.186.160.243 m_CaretBlinkRate: 0.85 m_CaretWidth: 1 m_ReadOnly: 0 @@ -254,12 +254,12 @@ RectTransform: m_Children: - {fileID: 4996346367104132246} m_Father: {fileID: 4996346368486089535} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 409.68347, y: 820} - m_SizeDelta: {x: 238.7751, y: 156.2808} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 816.7334, y: -113.47998} + m_SizeDelta: {x: 174.8618, y: 103.2501} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4996346367916384534 CanvasRenderer: @@ -376,12 +376,12 @@ RectTransform: - {fileID: 4996346368504347606} - {fileID: 4996346368893432072} m_Father: {fileID: 4996346368486089535} - m_RootOrder: 3 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 146.883, y: 820.0001} - m_SizeDelta: {x: 261.3027, y: 156.28} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 639.8202, y: -113.47998} + m_SizeDelta: {x: 178.9625, y: 103.25} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4996346368177541231 CanvasRenderer: @@ -481,7 +481,7 @@ MonoBehaviour: m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_CustomCaretColor: 0 m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412} - m_Text: 10001 + m_Text: 1000 m_CaretBlinkRate: 0.85 m_CaretWidth: 1 m_ReadOnly: 0 @@ -564,103 +564,7 @@ MonoBehaviour: m_HorizontalOverflow: 1 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: 127.0.0.1 ---- !u!1 &4996346368454841980 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4996346368454841971} - - component: {fileID: 4996346368454841969} - - component: {fileID: 4996346368454841970} - m_Layer: 5 - m_Name: log - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &4996346368454841971 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4996346368454841980} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 4996346368486089535} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -136.23236} - m_SizeDelta: {x: 0, y: -272.4646} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &4996346368454841969 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4996346368454841980} - m_CullTransparentMesh: 1 ---- !u!114 &4996346368454841970 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4996346368454841980} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} - m_FontSize: 64 - m_FontStyle: 0 - m_BestFit: 0 - m_MinSize: 10 - m_MaxSize: 168 - m_Alignment: 0 - m_AlignByGeometry: 0 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 'New Text - - New Text - - New Text - - New Text - - New TextNew Text - - New - Text - - New Text - - New Text - - New Text' + m_Text: 139.186.160.243 --- !u!1 &4996346368486089528 GameObject: m_ObjectHideFlags: 0 @@ -691,10 +595,10 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 4996346368454841971} - {fileID: 4996346367916384529} - {fileID: 4996346366834629260} - {fileID: 4996346368177541226} + - {fileID: 7539436960902585095} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -724,7 +628,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0, g: 0, b: 0, a: 0.6745098} + m_Color: {r: 0, g: 0, b: 0, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -754,9 +658,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: btnStart: {fileID: 4996346367916384528} + btnStop: {fileID: 8117411947949469824} inputIP: {fileID: 4996346366834629251} inputPort: {fileID: 4996346368177541225} - textLog: {fileID: 4996346368454841970} --- !u!1 &4996346368504347607 GameObject: m_ObjectHideFlags: 0 @@ -993,4 +897,204 @@ MonoBehaviour: m_HorizontalOverflow: 1 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: 10001 + m_Text: 1000 +--- !u!1 &6186141588528339253 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7539436960902585095} + - component: {fileID: 8969929348320387260} + - component: {fileID: 5841535602750926888} + - component: {fileID: 8117411947949469824} + m_Layer: 5 + m_Name: btnStop + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7539436960902585095 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6186141588528339253} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 5278454553715044843} + m_Father: {fileID: 4996346368486089535} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 993.73157, y: -113.47998} + m_SizeDelta: {x: 172.537, y: 103.2501} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8969929348320387260 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6186141588528339253} + m_CullTransparentMesh: 1 +--- !u!114 &5841535602750926888 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6186141588528339253} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8117411947949469824 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6186141588528339253} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5841535602750926888} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &9128063835190157119 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5278454553715044843} + - component: {fileID: 2931565232197910918} + - component: {fileID: 2465264613758728606} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5278454553715044843 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9128063835190157119} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 7539436960902585095} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2931565232197910918 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9128063835190157119} + m_CullTransparentMesh: 1 +--- !u!114 &2465264613758728606 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9128063835190157119} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 84 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 10 + m_MaxSize: 92 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: "\u505C\u6B62" diff --git a/NosugarNetForUnity/Assets/Plugins/HaoYueNet.ClientNetworkNet.Standard2.dll b/NosugarNetForUnity/Assets/Plugins/HaoYueNet.ClientNetworkNet.Standard2.dll new file mode 100644 index 0000000000000000000000000000000000000000..c3c4a9054b8382903afa0146193f59e88d636096 GIT binary patch literal 21504 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 literal 0 HcmV?d00001 diff --git a/NosugarNetForUnity/Assets/Plugins/HaoYueNet.ServerNetworkNet4x.dll.meta b/NosugarNetForUnity/Assets/Plugins/HaoYueNet.ServerNetwork.Standard2.dll.meta similarity index 93% rename from NosugarNetForUnity/Assets/Plugins/HaoYueNet.ServerNetworkNet4x.dll.meta rename to NosugarNetForUnity/Assets/Plugins/HaoYueNet.ServerNetwork.Standard2.dll.meta index 368bc10..07f0863 100644 --- a/NosugarNetForUnity/Assets/Plugins/HaoYueNet.ServerNetworkNet4x.dll.meta +++ b/NosugarNetForUnity/Assets/Plugins/HaoYueNet.ServerNetwork.Standard2.dll.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1f9384be4094cf448a9f7458308f9af9 +guid: bba3137572a9a52478aa945ce387a192 PluginImporter: externalObjects: {} serializedVersion: 2 diff --git a/NosugarNetForUnity/Assets/Plugins/HaoYueNet.ServerNetworkNet4x.dll b/NosugarNetForUnity/Assets/Plugins/HaoYueNet.ServerNetworkNet4x.dll deleted file mode 100644 index f57bef1a1e3b9e4ba3f98179231f4f55ed2797e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24576 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≀{kI2x>!F3Yi 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 literal 0 HcmV?d00001 diff --git a/NosugarNetForUnity/Assets/Plugins/NoSugarNet.DataHelper.dll.meta b/NosugarNetForUnity/Assets/Plugins/NoSugarNet.DataHelper.dll.meta new file mode 100644 index 0000000..2b3ed26 --- /dev/null +++ b/NosugarNetForUnity/Assets/Plugins/NoSugarNet.DataHelper.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 1d83e3c67ee8b794c97b5876ece7a16e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/NosugarNetForUnity/Assets/Plugins/System.Buffers.dll b/NosugarNetForUnity/Assets/Plugins/System.Buffers.dll index 14e5c532c72f0d9d82a5dfbe0cd6239d2a3d54f1..c0970c078522845d0ac9420f390fed5c29344d8c 100644 GIT binary patch delta 6598 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 L>>o^j5Yp%0#>bIL delta 6447 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�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%0AL|T{&GAus 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 literal 138144 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�q8Bzlv}ROx-}ptnKD&8tasR$2=E({1 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 literal 0 HcmV?d00001 diff --git a/NosugarNetForUnity/Assets/Plugins/System.Numerics.Vectors.dll.meta b/NosugarNetForUnity/Assets/Plugins/System.Numerics.Vectors.dll.meta new file mode 100644 index 0000000..6e2fab3 --- /dev/null +++ b/NosugarNetForUnity/Assets/Plugins/System.Numerics.Vectors.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 677f64bf577a1724699f45841c5bcb04 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/NosugarNetForUnity/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll b/NosugarNetForUnity/Assets/Plugins/System.Runtime.CompilerServices.Unsafe.dll index b50dbc4df47d93c7acccf5442fb5a0e0a41cf9eb..b17135bc95170151b88fc4679fe8be3758c3c3b9 100644 GIT binary patch delta 1945 zcmZXUX*|@4AIIl63?@doW5~>uqY-9?$t`l`T<0*3SxT-FD?(+MLCCs(u0_tB8I(oi zSnH;PSYeZOMmZv^+=N#9dhLV%{=W~t$NRzO(dYAxq61NMAT=IJ_DxH);!tgd)QpD! z)S}honaDp2h>?f`f=bJoQhxt_Mg>-CT4_>OnQoo1MwoCYMr5rYq`dpnJYW$y&JfkX z)+5UGt*>HUlioL;Y^{^4DLv=M{j?}}$#OS*K@N=CGZ(+S{j%4skK+AhS9qL6Q#ZAZ zt>tLyRY)G#GfaFlpZr1*DN);oYJZduNU{f@Jp88y=W+ZtJrR1*PNQ2R1?J=IkEaq4 zsEcc?r;)5J1?CDaPmRP$E_btvZu$^nE<-~A!+{1h6iHO4p|+#+UTpg`r5euESrgF|RH0;aL6>AA=<0NG zIrb|}?6K*#=0yjqJ3nCD^fD-}Bo03C%H$>ZwH?YS-T8 z(Eg%T#^0an%}~eOlH(+_h z=~h=*-lxSFr@H5Qu(e*uz9S=ngi^Ly-Jd1MSls*qI~kPeHfnqX3x~!vyPMLI1fKF^ zWPh~N`1DAw2J~51o(?NI7Xc-r!Bi!hw&h}b&v3~d@kXr*2g4_(o0)Ob{Ad};1eItT_qLB*WvLasJ*Z>4@ zx+g_J%u-vEqUAi~xByYm3YRCMqDmG+5b(zWcmiG(cYNZaUx7g~4j@}u@4q6&cvI@Y zE^_0rWl640N#`-SDhXpJ-f5W8k;ij>N^5MQz<&A1z%s1qx!vD+H^xjN?RDoouHGRT z2`cAe7-Nwy3f82nqa>9!h?aG_Y9>w_C1VLZ83$mZ*#K9P{BBp~R+!YJUs8TXqColV z3OxM`)HCN%#bJic!ixC(yiEkbB#p`q{|R?bqH2xqafzmtmc1M2|KNq}ilmebhSDZG zYeVp55#7VFzMB;u(%4%~a+8@ik6c{hz2H^-yCsTwUgH_HX9Wg%vYgi}gv5ABQJN8r zw4Im8fZa9**A~n9Zp-a$q8R;)IP5WjHQ27^sO%b?{()aq=S|B!`#)f-xVoo-)6Lks7*QAs%!alqj+WJ@iyGZnb`@#ns%of30pQ`G8R#&ix#`up!!j4@ptwF73iUw`N`bzY z&YY!VGPZyI{ya~%>-jwN#mU+lL~N2Ds$1XZb&2~>N9rqFbPiakO{YSIRQ^f$|KuHq z;Y6LK%zMAT6My*g*7lPepnlLfOV-7c!yPRw{W^G;5`G z)7~v?|9~kH#JS7JsmYkH-ncm;0xxqpg+WMRbox^^Po=b`37+oq0X#N8s6(yii z+Flr#?^^}GXB9KH=g5i+NXU?GZ=P(-;Cuy{|dMK_AZa> EZ=}9xWdHyG delta 1945 zcmZXUX*|>k7{}*7<7QmrYK$?+ksAKvnr012h8B@q&dRZ!@*Is-Or*!lT%he$&l>(5VTy zGMA|8M>)(>uIza!^JKNarLM5N2uu?I()yq*oZJR712(8qH-p$cw^u=H>33<%+);3h zPB_d<#v#iJuRF|IBaTMq{{Tck&0w=6Jz z;-sk)fmIqP<6KSQu&%rNk`w~gf{gV?S~5*VA^E1KDxUXKlZ*^et=hyxRO`vG+1K3R z61UsGTxJTPs!3&*jiK51Vv0jEEh!2!U3p!XmD7LsEJ;PY?-Yt0Ex3z~K|MA2isWaDp&x??pJ z_Mt6Buv48}?|#%v zP9~HTL7D9IlSrZ}=_$}7f zi2XLlvtu5MwbYHhSGB6{veUwiPcHWtR<-&Cz8JdQ;$&){uFJEw#S$@^nT~8cWAy#E z0F5&G(5O73#p1lllsWh6q=|U2^4}`eyxE_bJBL z&@4A$ekljmeEx3Vw#ppQY&!nZVp=;XrA()`{VAe9MM#62N=^rE!`GyR?E8VQCxSe5IP?wcV_470H6?+!g{UkHc|J09QUspN4mrxi0 z0iJ{a!e9s>2#PSl%tSaD1Q_^Y5Hd^g{@OEo2SI7)-d9SGJ3p|d@hfrwWI4ylSf6Bx zxDbT6DO_^dS1E!xRrMhU1wM?CU%@&}ci9%3{i7>wd{c?C1hovqQ{}xnqVm(S=r91QAR% zWuCiXWLAnCcw&hgT-@aGxyI;JX#`~M(UZ;(y3*mrMnSwAdG3K-#yv8@{sL5Psd$zV zLRq;>LlqdQ-nu1B$g8 zN}^#I3P3=%;{k<=azKG2kooVOr{WkgLT2|kT_~w)2INS|2c43iO-fpbmW5 zT#qj?F8M-T&*Pid3wBjUY4r=uV`uJM$aZ|e(;U%Ssg%-=^0xBYwy<$SXJM_cWE1p( z0?j@Fm!&t)3*(v-wfSDd>=1*+s$Ycr)^ka3fra)Yd8#Jc&epK><_Ku$jYo7&?tI<$ zY3COt00fGQdcyyT$a+o#LupAuYV#u9^RNq0k+Bu?44|;Urcd%`5RC~fer4Q@;(87( z;jKDv`Fh&(7o!DwVHPn5?}_b^98UbaFV2ACdN^XQ1Ky)jvWTH%C_?eChX1?opg04j z^2T+f5_{DNN^{N!59OV(vS?{(qmh~NOZAWL`*srWAe@O+HvD4vE*t>Z86gZI07O1v zKe9t%e$uADn5XXa(Oc@7DzCk!w_)eA$Q68ZYj!fMGfC8jyBiq@I!Aty%hJ1-AISh@ zsfeMHC>gO3g9|uN`>?#5%xw&@7!k>28G6VqHZ7qTD9=;&u0#n7!PVV@3%Cb#