...
 
Commits (3)
    https://gitcode.net/qq_40374647/RRQMSocket/-/commit/92ad876afc38cabe867e2c942508ec4f3311fe00 更新文档 2023-03-04T09:39:05+08:00 若汝棋茗 505554090@qq.com https://gitcode.net/qq_40374647/RRQMSocket/-/commit/48a7bc4c47588697802d36876a220881f582834f 更新文档 2023-03-04T09:47:19+08:00 若汝棋茗 505554090@qq.com https://gitcode.net/qq_40374647/RRQMSocket/-/commit/57ce33a8fcb9330fcbf862923453e18e91b2a24d 更新文档 2023-03-05T23:42:26+08:00 若汝棋茗 505554090@qq.com
using RpcProxy;
using System;
using System.Text;
using System.Windows.Forms;
using TouchSocket.Core;
using TouchSocket.Rpc.TouchRpc;
......@@ -26,7 +27,7 @@ namespace TouchRpcClientApp
//后续参数为调用参数。
bool result = client.Invoke<bool>("touchrpcserverapp.myrpcserver.login", InvokeOption.WaitInvoke, textBox1.Text, textBox2.Text);
MessageBox.Show(result.ToString());
client.SafeDispose();//client是长连接,可以复用,但在此处使用短连接。
}
......
......@@ -4,13 +4,13 @@
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.3.1">
<title data-rh="true">Page Not Found | TouchSocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://rrqm_home.gitee.io/touchsocket/404.html"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="Page Not Found | TouchSocket"><link data-rh="true" rel="icon" href="/touchsocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://rrqm_home.gitee.io/touchsocket/404.html"><link data-rh="true" rel="alternate" href="https://rrqm_home.gitee.io/touchsocket/404.html" hreflang="en"><link data-rh="true" rel="alternate" href="https://rrqm_home.gitee.io/touchsocket/404.html" hreflang="x-default"><link rel="stylesheet" href="/touchsocket/assets/css/styles.d72046aa.css">
<link rel="preload" href="/touchsocket/assets/js/runtime~main.d9ae53ad.js" as="script">
<link rel="preload" href="/touchsocket/assets/js/main.59afb119.js" as="script">
<link rel="preload" href="/touchsocket/assets/js/runtime~main.5f698454.js" as="script">
<link rel="preload" href="/touchsocket/assets/js/main.5b9f1b4f.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/touchsocket/"><div class="navbar__logo"><img src="/touchsocket/img/TouchSocketlogo.png" alt="TouchSocket Logo" class="themedImage_ToTc themedImage--light_HNdA"><img src="/touchsocket/img/TouchSocketlogo.png" alt="TouchSocket Logo" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">TouchSocket</b></a><a class="navbar__item navbar__link" href="/touchsocket/docs">文档</a><a class="navbar__item navbar__link" href="/touchsocket/docs/upgrade">更新日志</a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">源码</a><ul class="dropdown__menu"><li><a href="https://gitee.com/rrqm_home/touchsocket" target="_blank" rel="noopener noreferrer" class="dropdown__link">Gitee(主库)<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://github.com/RRQM/TouchSocket" target="_blank" rel="noopener noreferrer" class="dropdown__link">GitHub<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li><a href="https://www.nuget.org/profiles/rrqm" target="_blank" rel="noopener noreferrer" class="dropdown__link">Nuget<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><a href="https://gitee.com/dotnetchina" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">社区<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><div class="navbar__search searchBarContainer_NW3z"><input placeholder="Search" aria-label="Search" class="navbar__search-input"><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div><div class="searchHintContainer_Pkmr"><kbd class="searchHint_iIMx">ctrl</kbd><kbd class="searchHint_iIMx">K</kbd></div></div></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0"><main class="container margin-vert--xl"><div class="row"><div class="col col--6 col--offset-3"><h1 class="hero__title">Page Not Found</h1><p>We could not find what you were looking for.</p><p>Please contact the owner of the site that linked you to the original URL and let them know their link is broken.</p></div></div></main></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">文档</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/touchsocket/docs">入门</a></li><li class="footer__item"><a class="footer__link-item" href="/touchsocket/docs">手册</a></li></ul></div><div class="col footer__col"><div class="footer__title">社区</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gitee.com/rrqm_home/touchsocket/issues" target="_blank" rel="noopener noreferrer" class="footer__link-item">讨论<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://gitee.com/rrqm_home/touchsocket/board" target="_blank" rel="noopener noreferrer" class="footer__link-item">看板<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">更多</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://gitee.com/rrqm_home/touchsocket" target="_blank" rel="noopener noreferrer" class="footer__link-item">仓库<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2020-2023 若汝棋茗.</div></div></div></footer></div>
<script src="/touchsocket/assets/js/runtime~main.d9ae53ad.js"></script>
<script src="/touchsocket/assets/js/main.59afb119.js"></script>
<script src="/touchsocket/assets/js/runtime~main.5f698454.js"></script>
<script src="/touchsocket/assets/js/main.5b9f1b4f.js"></script>
</body>
</html>
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[9925],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function c(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),p=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),m=p(n),d=a,k=m["".concat(i,".").concat(d)]||m[d]||u[d]||o;return n?r.createElement(k,l(l({ref:t},s),{},{components:n})):r.createElement(k,l({ref:t},s))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c.mdxType="string"==typeof e?e:a,l[1]=c;for(var p=2;p<o;p++)l[p]=n[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}m.displayName="MDXCreateElement"},4348:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var r=n(7462),a=(n(7294),n(3905));const o={id:"othercore",title:"\u5176\u4ed6\u76f8\u5173\u529f\u80fd\u7c7b"},l=void 0,c={unversionedId:"othercore",id:"othercore",title:"\u5176\u4ed6\u76f8\u5173\u529f\u80fd\u7c7b",description:"\u4e00\u3001Crc\u8ba1\u7b97",source:"@site/docs/othercore.mdx",sourceDirName:".",slug:"/othercore",permalink:"/touchsocket/docs/othercore",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/othercore.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1677894439,formattedLastUpdatedAt:"Mar 4, 2023",frontMatter:{id:"othercore",title:"\u5176\u4ed6\u76f8\u5173\u529f\u80fd\u7c7b"},sidebar:"docs",previous:{title:"\u5305\u5e8f\u5217\u5316\u6a21\u5f0f",permalink:"/touchsocket/docs/ipackage"},next:{title:"Tcp\u5165\u95e8\u57fa\u7840",permalink:"/touchsocket/docs/tcpintroduction"}},i={},p=[{value:"\u4e00\u3001Crc\u8ba1\u7b97",id:"\u4e00crc\u8ba1\u7b97",level:2},{value:"\u4e8c\u3001\u65f6\u95f4\u6d4b\u91cf\u5668\uff08TimeMeasurer\uff09",id:"\u4e8c\u65f6\u95f4\u6d4b\u91cf\u5668timemeasurer",level:2},{value:"\u4e09\u3001MD5\u8ba1\u7b97",id:"\u4e09md5\u8ba1\u7b97",level:2},{value:"\u56db\u300116\u8fdb\u5236\u76f8\u5173",id:"\u56db16\u8fdb\u5236\u76f8\u5173",level:2},{value:"\u4e94\u3001\u96ea\u82b1ID\u751f\u6210",id:"\u4e94\u96ea\u82b1id\u751f\u6210",level:2},{value:"\u516d\u3001\u6570\u636e\u538b\u7f29",id:"\u516d\u6570\u636e\u538b\u7f29",level:2},{value:"\u4e03\u3001\u77ed\u65f6\u95f4\u6233",id:"\u4e03\u77ed\u65f6\u95f4\u6233",level:2},{value:"\u516b\u3001\u8bfb\u5199\u9501using",id:"\u516b\u8bfb\u5199\u9501using",level:2}],s={toc:p};function u(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00crc\u8ba1\u7b97"},"\u4e00\u3001Crc\u8ba1\u7b97"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"TouchSocket"),"\u4ece\u7f51\u4e0a\u641c\u96c6\u4e86Crc1-23\u7684\u8ba1\u7b97\u65b9\u6cd5\u3002\u5e76\u5c01\u88c5\u5728\u4e86Crc\u7c7b\u4e2d\u3002\n\u4ee5\u6700\u5e38\u7528\u7684Crc16\u4e3a\u4f8b\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"byte[] data = new byte[10];\nbyte[] result = Crc.Crc16(data, 0, data.Length);\n")),(0,a.kt)("h2",{id:"\u4e8c\u65f6\u95f4\u6d4b\u91cf\u5668timemeasurer"},"\u4e8c\u3001\u65f6\u95f4\u6d4b\u91cf\u5668\uff08TimeMeasurer\uff09"),(0,a.kt)("p",null,"\u529f\u80fd\uff1a\u5c01\u88c5\u7684Stopwatch\uff0c\u6d4b\u91cf\u8fd0\u884cAction\u7684\u65f6\u95f4\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"TimeSpan timeSpan = TimeMeasurer.Run(() =>\n {\n Thread.Sleep(1000);\n });\n\n")),(0,a.kt)("h2",{id:"\u4e09md5\u8ba1\u7b97"},"\u4e09\u3001MD5\u8ba1\u7b97"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'string str = MD5.GetMD5Hash("TouchSocket");\nbool b = MD5.VerifyMD5Hash("TouchSocket",str);\n')),(0,a.kt)("h2",{id:"\u56db16\u8fdb\u5236\u76f8\u5173"},"\u56db\u300116\u8fdb\u5236\u76f8\u5173"),(0,a.kt)("p",null,"\u3010\u5c0616\u8fdb\u5236\u7684\u5b57\u7b26\u8f6c\u6362\u4e3a\u6570\u7ec4\u3011"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"}," public static byte[] ByHexStringToBytes(this string hexString, string splite = default)\n")),(0,a.kt)("p",null,"\u3010\u5c0616\u8fdb\u5236\u7684\u5b57\u7b26\u8f6c\u6362\u4e3aint32\u3011"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"}," public static int ByHexStringToInt32(this string hexString)\n")),(0,a.kt)("h2",{id:"\u4e94\u96ea\u82b1id\u751f\u6210"},"\u4e94\u3001\u96ea\u82b1ID\u751f\u6210"),(0,a.kt)("p",null,"\u96ea\u82b1ID\uff0c\u4f1a\u751f\u6210long\u7c7b\u578b\u7684\u4e0d\u91cd\u590dID\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"SnowflakeIDGenerator generator = new SnowflakeIDGenerator(4);\nlong id=generator.NextID();\n")),(0,a.kt)("h2",{id:"\u516d\u6570\u636e\u538b\u7f29"},"\u516d\u3001\u6570\u636e\u538b\u7f29"),(0,a.kt)("p",null,"\u5185\u90e8\u5c01\u88c5\u4e86Gzip\u7684\u538b\u7f29\u3002\u4f7f\u7528\u9759\u6001\u65b9\u6cd5\u5373\u53ef\u5b8c\u6210\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"\nbyte[] data = new byte[1024];\nnew Random().NextBytes(data);\n\nusing (ByteBlock byteBlock=new ByteBlock())\n{\n GZip.Compress(byteBlock,data,0,data.Length);//\u538b\u7f29\n var decompressData2 = GZip.Decompress(byteBlock.ToArray());//\u89e3\u538b\n}\n\n\n")),(0,a.kt)("p",null,"\u538b\u7f29\u63a5\u53e3\n\u5185\u90e8\u8fd8\u5b9a\u4e49\u4e86\u4e00\u4e2aIDataCompressor\u7684\u538b\u7f29\u63a5\u53e3\u3002\u76ee\u7684\u662f\u4e3a\u4e86\u5411\u6210\u719f\u6846\u67b6\u4f20\u9012\u538b\u7f29\u65b9\u6cd5\uff08\u4f8b\u5982TcpClient\uff09\u3002\n\u9ed8\u8ba4\u914d\u5907\u4e86\u4e00\u4e2aGZipDataCompressor\u3002\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u3002\u5f53\u7136\u5927\u5bb6\u53ef\u4ee5\u81ea\u7531\u6269\u5c55\u5176\u4ed6\u538b\u7f29\u65b9\u6cd5\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"class MyDataCompressor : IDataCompressor\n{\n public byte[] Compress(ArraySegment<byte> data)\n {\n //\u6b64\u5904\u5b9e\u73b0\u538b\u7f29\n throw new NotImplementedException();\n }\n\n public byte[] Decompress(ArraySegment<byte> data)\n {\n //\u6b64\u5904\u5b9e\u73b0\u538b\u7f29\n throw new NotImplementedException();\n }\n}\n")),(0,a.kt)("h2",{id:"\u4e03\u77ed\u65f6\u95f4\u6233"},"\u4e03\u3001\u77ed\u65f6\u95f4\u6233"),(0,a.kt)("p",null,"\u4e00\u822c\u7684\uff0c\u65f6\u95f4\u53ef\u7531long\u7c7b\u578b\u4f5c\u4e3a\u552f\u4e00\u65f6\u95f4\u6233\uff0c\u4f46\u662f\u6709\u65f6\u5019\uff0c\u6211\u4eec\u4e5f\u9700\u8981\u77ed\u7c7b\u578b\u7684\u65f6\u95f4\u6233\uff08uint\uff09\uff0c\u6240\u4ee5\u60a8\u53ef\u4ee5\u4f7f\u7528",(0,a.kt)("strong",{parentName:"p"},"DateTimeExtensions"),"\u7c7b\u5b9e\u73b0\uff0c\u6216\u8005\u4f7f\u7528\u5176\u6269\u5c55\u65b9\u6cd5\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"uint timestamp= DateTimeExtensions.ConvertTime(DateTime.Now);\ntimestamp= DateTime.Now.ConvertTime();//\u6269\u5c55\u65b9\u6cd5\n")),(0,a.kt)("h2",{id:"\u516b\u8bfb\u5199\u9501using"},"\u516b\u3001\u8bfb\u5199\u9501using"),(0,a.kt)("p",null,"\u4e00\u822c\u7684\uff0c\u6211\u4eec\u90fd\u4f1a\u4f7f\u7528",(0,a.kt)("strong",{parentName:"p"},"ReaderWriterLockSlim"),"\u8bfb\u5199\u9501\uff0c\u8fdb\u884c\u6210\u5bf9\u7684Enter\u548cExit\u3002\u6240\u4ee5\u6211\u4eec\u4e00\u822c\u4f1a\u4f7f\u7528\u4e0b\u5217\u4ee3\u7801\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"ReaderWriterLockSlim lockSlim = new ReaderWriterLockSlim();\ntry\n{\n lockSlim.EnterReadLock();\n //do something\n}\nfinally \n{\n lockSlim.ExitReadLock();\n}\n")),(0,a.kt)("p",null,"\u4f46\u662f\u4f1a\u663e\u5f97\u4ee3\u7801\u975e\u5e38\u81c3\u80bf\u3002\u6240\u4ee5\u6211\u4eec\u53ef\u4ee5\u7b80\u5316\u4f7f\u7528using\u5b9e\u73b0\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"ReaderWriterLockSlim lockSlim = new ReaderWriterLockSlim();\n\nusing (new ReadLock(lockSlim))\n{\n //do something\n}\n\nusing (new WriteLock(lockSlim))\n{\n //do something\n}\n")),(0,a.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},(0,a.kt)("strong",{parentName:"p"},"ReadLock"),"\u548c",(0,a.kt)("strong",{parentName:"p"},"WriteLock"),"\u5747\u4e3astruct\u7c7b\u578b\uff0c\u6240\u4ee5\u51e0\u4e4e\u4e0d\u4f1a\u5f71\u54cd\u6027\u80fd\u3002")))}u.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[9925],{3905:(e,t,r)=>{r.d(t,{Zo:()=>i,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function l(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},i=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),d=s(r),m=a,y=d["".concat(p,".").concat(m)]||d[m]||u[m]||o;return r?n.createElement(y,c(c({ref:t},i),{},{components:r})):n.createElement(y,c({ref:t},i))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l.mdxType="string"==typeof e?e:a,c[1]=l;for(var s=2;s<o;s++)c[s]=r[s];return n.createElement.apply(null,c)}return n.createElement.apply(null,r)}d.displayName="MDXCreateElement"},4348:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={id:"othercore",title:"\u5176\u4ed6\u76f8\u5173\u529f\u80fd\u7c7b"},c=void 0,l={unversionedId:"othercore",id:"othercore",title:"\u5176\u4ed6\u76f8\u5173\u529f\u80fd\u7c7b",description:"\u4e00\u3001Crc\u8ba1\u7b97",source:"@site/docs/othercore.mdx",sourceDirName:".",slug:"/othercore",permalink:"/touchsocket/docs/othercore",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/othercore.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"othercore",title:"\u5176\u4ed6\u76f8\u5173\u529f\u80fd\u7c7b"},sidebar:"docs",previous:{title:"\u5305\u5e8f\u5217\u5316\u6a21\u5f0f",permalink:"/touchsocket/docs/ipackage"},next:{title:"Tcp\u5165\u95e8\u57fa\u7840",permalink:"/touchsocket/docs/tcpintroduction"}},p={},s=[{value:"\u4e00\u3001Crc\u8ba1\u7b97",id:"\u4e00crc\u8ba1\u7b97",level:2},{value:"\u4e8c\u3001\u65f6\u95f4\u6d4b\u91cf\u5668\uff08TimeMeasurer\uff09",id:"\u4e8c\u65f6\u95f4\u6d4b\u91cf\u5668timemeasurer",level:2},{value:"\u4e09\u3001MD5\u8ba1\u7b97",id:"\u4e09md5\u8ba1\u7b97",level:2},{value:"\u56db\u300116\u8fdb\u5236\u76f8\u5173",id:"\u56db16\u8fdb\u5236\u76f8\u5173",level:2},{value:"\u4e94\u3001\u96ea\u82b1ID\u751f\u6210",id:"\u4e94\u96ea\u82b1id\u751f\u6210",level:2},{value:"\u516d\u3001\u6570\u636e\u538b\u7f29",id:"\u516d\u6570\u636e\u538b\u7f29",level:2}],i={toc:s};function u(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00crc\u8ba1\u7b97"},"\u4e00\u3001Crc\u8ba1\u7b97"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"TouchSocket"),"\u4ece\u7f51\u4e0a\u641c\u96c6\u4e86Crc1-23\u7684\u8ba1\u7b97\u65b9\u6cd5\u3002\u5e76\u5c01\u88c5\u5728\u4e86Crc\u7c7b\u4e2d\u3002\n\u4ee5\u6700\u5e38\u7528\u7684Crc16\u4e3a\u4f8b\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"byte[] data = new byte[10];\nbyte[] result = Crc.Crc16(data, 0, data.Length);\n")),(0,a.kt)("h2",{id:"\u4e8c\u65f6\u95f4\u6d4b\u91cf\u5668timemeasurer"},"\u4e8c\u3001\u65f6\u95f4\u6d4b\u91cf\u5668\uff08TimeMeasurer\uff09"),(0,a.kt)("p",null,"\u529f\u80fd\uff1a\u5c01\u88c5\u7684Stopwatch\uff0c\u6d4b\u91cf\u8fd0\u884cAction\u7684\u65f6\u95f4\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"TimeSpan timeSpan = TimeMeasurer.Run(() =>\n {\n Thread.Sleep(1000);\n });\n\n")),(0,a.kt)("h2",{id:"\u4e09md5\u8ba1\u7b97"},"\u4e09\u3001MD5\u8ba1\u7b97"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'string str = MD5.GetMD5Hash("TouchSocket");\nbool b = MD5.VerifyMD5Hash("TouchSocket",str);\n')),(0,a.kt)("h2",{id:"\u56db16\u8fdb\u5236\u76f8\u5173"},"\u56db\u300116\u8fdb\u5236\u76f8\u5173"),(0,a.kt)("p",null,"\u3010\u5c0616\u8fdb\u5236\u7684\u5b57\u7b26\u8f6c\u6362\u4e3a\u6570\u7ec4\u3011"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"}," public static byte[] ByHexStringToBytes(this string hexString, string splite = default)\n")),(0,a.kt)("p",null,"\u3010\u5c0616\u8fdb\u5236\u7684\u5b57\u7b26\u8f6c\u6362\u4e3aint32\u3011"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"}," public static int ByHexStringToInt32(this string hexString)\n")),(0,a.kt)("h2",{id:"\u4e94\u96ea\u82b1id\u751f\u6210"},"\u4e94\u3001\u96ea\u82b1ID\u751f\u6210"),(0,a.kt)("p",null,"\u96ea\u82b1ID\uff0c\u4f1a\u751f\u6210long\u7c7b\u578b\u7684\u4e0d\u91cd\u590dID\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"SnowflakeIDGenerator generator = new SnowflakeIDGenerator(4);\nlong id=generator.NextID();\n")),(0,a.kt)("h2",{id:"\u516d\u6570\u636e\u538b\u7f29"},"\u516d\u3001\u6570\u636e\u538b\u7f29"),(0,a.kt)("p",null,"\u5185\u90e8\u5c01\u88c5\u4e86Gzip\u7684\u538b\u7f29\u3002\u4f7f\u7528\u9759\u6001\u65b9\u6cd5\u5373\u53ef\u5b8c\u6210\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"\nbyte[] data = new byte[1024];\nnew Random().NextBytes(data);\n\nusing (ByteBlock byteBlock=new ByteBlock())\n{\n GZip.Compress(byteBlock,data,0,data.Length);//\u538b\u7f29\n var decompressData2 = GZip.Decompress(byteBlock.ToArray());//\u89e3\u538b\n}\n\n\n")),(0,a.kt)("p",null,"\u538b\u7f29\u63a5\u53e3\n\u5185\u90e8\u8fd8\u5b9a\u4e49\u4e86\u4e00\u4e2aIDataCompressor\u7684\u538b\u7f29\u63a5\u53e3\u3002\u76ee\u7684\u662f\u4e3a\u4e86\u5411\u6210\u719f\u6846\u67b6\u4f20\u9012\u538b\u7f29\u65b9\u6cd5\uff08\u4f8b\u5982TcpClient\uff09\u3002\n\u9ed8\u8ba4\u914d\u5907\u4e86\u4e00\u4e2aGZipDataCompressor\u3002\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u3002\u5f53\u7136\u5927\u5bb6\u53ef\u4ee5\u81ea\u7531\u6269\u5c55\u5176\u4ed6\u538b\u7f29\u65b9\u6cd5\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"class MyDataCompressor : IDataCompressor\n{\n public byte[] Compress(ArraySegment<byte> data)\n {\n //\u6b64\u5904\u5b9e\u73b0\u538b\u7f29\n throw new NotImplementedException();\n }\n\n public byte[] Decompress(ArraySegment<byte> data)\n {\n //\u6b64\u5904\u5b9e\u73b0\u538b\u7f29\n throw new NotImplementedException();\n }\n}\n")))}u.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[2903],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},c=Object.keys(e);for(o=0;o<c.length;o++)n=c[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o<c.length;o++)n=c[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=o.createContext({}),s=function(e){var t=o.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=s(e.components);return o.createElement(i.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,c=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(n),f=r,m=d["".concat(i,".").concat(f)]||d[f]||u[f]||c;return n?o.createElement(m,a(a({ref:t},p),{},{components:n})):o.createElement(m,a({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var c=n.length,a=new Array(c);a[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l.mdxType="string"==typeof e?e:r,a[1]=l;for(var s=2;s<c;s++)a[s]=n[s];return o.createElement.apply(null,a)}return o.createElement.apply(null,n)}d.displayName="MDXCreateElement"},8690:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>a,default:()=>u,frontMatter:()=>c,metadata:()=>l,toc:()=>s});var o=n(7462),r=(n(7294),n(3905));const c={id:"consoleaction",title:"\u63a7\u5236\u53f0\u884c\u4e3a"},a=void 0,l={unversionedId:"consoleaction",id:"consoleaction",title:"\u63a7\u5236\u53f0\u884c\u4e3a",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/consoleaction.mdx",sourceDirName:".",slug:"/consoleaction",permalink:"/touchsocket/docs/consoleaction",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/consoleaction.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"consoleaction",title:"\u63a7\u5236\u53f0\u884c\u4e3a"},sidebar:"docs",previous:{title:"\u5185\u5b58\u6c60",permalink:"/touchsocket/docs/bytepool"},next:{title:"\u5927\u5c0f\u7aef\u8f6c\u6362\u5668",permalink:"/touchsocket/docs/touchsocketbitconverter"}},i={},s=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u4f7f\u7528",id:"\u4e8c\u4f7f\u7528",level:2},{value:"\u4e09\u3001\u6548\u679c\u56fe",id:"\u4e09\u6548\u679c\u56fe",level:2}],p={toc:s};function u(e){let{components:t,...c}=e;return(0,r.kt)("wrapper",(0,o.Z)({},p,c,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,r.kt)("p",null,"\u8fd9\u662f\u4e00\u4e2a\u5f88\u7b80\u5355\u7684\u63a7\u5236\u53f0\u547d\u4ee4\u5668\uff0c\u91cd\u8981\u4f5c\u7528\u5c31\u662f\u5f88\u65b9\u4fbf\u7684\u5b9e\u73b0\u63a7\u5236\u53f0\u63a7\u5236\u3002"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Nuget Package\uff1a"),(0,r.kt)("a",{parentName:"p",href:"https://www.nuget.org/packages/TouchSocket/"},"TouchSocket")),(0,r.kt)("h2",{id:"\u4e8c\u4f7f\u7528"},"\u4e8c\u3001\u4f7f\u7528"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'ConsoleAction consoleAction = new ConsoleAction("h|help|?");//\u8bbe\u7f6e\u5e2e\u52a9\u547d\u4ee4\nconsoleAction.OnException += ConsoleAction_OnException;//\u8ba2\u9605\u6267\u884c\u5f02\u5e38\u8f93\u51fa\n\n//\u4e0b\u5217\u7684ShareProxy\uff0cStopShareProxy\uff0cGetAll\u5747\u4e3a\u65e0\u53c2\u6570\u7684\u65b9\u6cd5\nconsoleAction.Add("sp|shareProxy", "\u5206\u4eab\u4ee3\u7406", ShareProxy);//\u793a\u4f8b\u547d\u4ee4\nconsoleAction.Add("ssp|stopShareProxy", "\u505c\u6b62\u5206\u4eab\u4ee3\u7406", StopShareProxy);//\u793a\u4f8b\u547d\u4ee4\nconsoleAction.Add("ga|getAll", "\u83b7\u53d6\u6240\u6709\u5ba2\u6237\u7aef\u4fe1\u606f", GetAll);//\u793a\u4f8b\u547d\u4ee4\nconsoleAction.ShowAll();\nwhile (true)\n{\n if (!consoleAction.Run(Console.ReadLine()))\n {\n Console.WriteLine("\u547d\u4ee4\u4e0d\u6b63\u786e\uff0c\u8bf7\u8f93\u5165\u201ch|help|?\u201d\u83b7\u5f97\u5e2e\u52a9\u3002");\n }\n}\n')),(0,r.kt)("h2",{id:"\u4e09\u6548\u679c\u56fe"},"\u4e09\u3001\u6548\u679c\u56fe"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(1382).Z,width:"974",height:"515"})))}u.isMDXComponent=!0},1382:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/consoleaction-1-d9e1a3f9f1a42d751e1d5e0605714a2c.gif"}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[2903],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>f});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n,o,r={},c=Object.keys(e);for(o=0;o<c.length;o++)n=c[o],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o<c.length;o++)n=c[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=o.createContext({}),s=function(e){var t=o.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=s(e.components);return o.createElement(i.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,c=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(n),f=r,m=d["".concat(i,".").concat(f)]||d[f]||u[f]||c;return n?o.createElement(m,a(a({ref:t},p),{},{components:n})):o.createElement(m,a({ref:t},p))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var c=n.length,a=new Array(c);a[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l.mdxType="string"==typeof e?e:r,a[1]=l;for(var s=2;s<c;s++)a[s]=n[s];return o.createElement.apply(null,a)}return o.createElement.apply(null,n)}d.displayName="MDXCreateElement"},8690:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>a,default:()=>u,frontMatter:()=>c,metadata:()=>l,toc:()=>s});var o=n(7462),r=(n(7294),n(3905));const c={id:"consoleaction",title:"\u63a7\u5236\u53f0\u884c\u4e3a"},a=void 0,l={unversionedId:"consoleaction",id:"consoleaction",title:"\u63a7\u5236\u53f0\u884c\u4e3a",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/consoleaction.mdx",sourceDirName:".",slug:"/consoleaction",permalink:"/touchsocket/docs/consoleaction",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/consoleaction.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"consoleaction",title:"\u63a7\u5236\u53f0\u884c\u4e3a"},sidebar:"docs",previous:{title:"\u5185\u5b58\u6c60",permalink:"/touchsocket/docs/bytepool"},next:{title:"\u5927\u5c0f\u7aef\u8f6c\u6362\u5668",permalink:"/touchsocket/docs/touchsocketbitconverter"}},i={},s=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u4f7f\u7528",id:"\u4e8c\u4f7f\u7528",level:2},{value:"\u4e09\u3001\u6548\u679c\u56fe",id:"\u4e09\u6548\u679c\u56fe",level:2}],p={toc:s};function u(e){let{components:t,...c}=e;return(0,r.kt)("wrapper",(0,o.Z)({},p,c,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,r.kt)("p",null,"\u8fd9\u662f\u4e00\u4e2a\u5f88\u7b80\u5355\u7684\u63a7\u5236\u53f0\u547d\u4ee4\u5668\uff0c\u91cd\u8981\u4f5c\u7528\u5c31\u662f\u5f88\u65b9\u4fbf\u7684\u5b9e\u73b0\u63a7\u5236\u53f0\u63a7\u5236\u3002"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Nuget Package\uff1a"),(0,r.kt)("a",{parentName:"p",href:"https://www.nuget.org/packages/TouchSocket/"},"TouchSocket")),(0,r.kt)("h2",{id:"\u4e8c\u4f7f\u7528"},"\u4e8c\u3001\u4f7f\u7528"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'ConsoleAction consoleAction = new ConsoleAction("h|help|?");//\u8bbe\u7f6e\u5e2e\u52a9\u547d\u4ee4\nconsoleAction.OnException += ConsoleAction_OnException;//\u8ba2\u9605\u6267\u884c\u5f02\u5e38\u8f93\u51fa\n\n//\u4e0b\u5217\u7684ShareProxy\uff0cStopShareProxy\uff0cGetAll\u5747\u4e3a\u65e0\u53c2\u6570\u7684\u65b9\u6cd5\nconsoleAction.Add("sp|shareProxy", "\u5206\u4eab\u4ee3\u7406", ShareProxy);//\u793a\u4f8b\u547d\u4ee4\nconsoleAction.Add("ssp|stopShareProxy", "\u505c\u6b62\u5206\u4eab\u4ee3\u7406", StopShareProxy);//\u793a\u4f8b\u547d\u4ee4\nconsoleAction.Add("ga|getAll", "\u83b7\u53d6\u6240\u6709\u5ba2\u6237\u7aef\u4fe1\u606f", GetAll);//\u793a\u4f8b\u547d\u4ee4\nconsoleAction.ShowAll();\nwhile (true)\n{\n if (!consoleAction.Run(Console.ReadLine()))\n {\n Console.WriteLine("\u547d\u4ee4\u4e0d\u6b63\u786e\uff0c\u8bf7\u8f93\u5165\u201ch|help|?\u201d\u83b7\u5f97\u5e2e\u52a9\u3002");\n }\n}\n')),(0,r.kt)("h2",{id:"\u4e09\u6548\u679c\u56fe"},"\u4e09\u3001\u6548\u679c\u56fe"),(0,r.kt)("p",null,(0,r.kt)("img",{src:n(4173).Z,width:"974",height:"515"})))}u.isMDXComponent=!0},4173:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/consoleaction-1-d9e1a3f9f1a42d751e1d5e0605714a2c.gif"}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[5215],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),d=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=d(r),f=o,m=s["".concat(l,".").concat(f)]||s[f]||p[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=s;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var d=2;d<a;d++)i[d]=r[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}s.displayName="MDXCreateElement"},7506:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var n=r(7462),o=(r(7294),r(3905));const a={id:"webdataforwarding",title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee"},i=void 0,c={unversionedId:"webdataforwarding",id:"webdataforwarding",title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee",description:"\u5b9a\u5236\u65b9",source:"@site/docs/webdataforwarding.mdx",sourceDirName:".",slug:"/webdataforwarding",permalink:"/touchsocket/docs/webdataforwarding",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/webdataforwarding.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"webdataforwarding",title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee"},sidebar:"docs",previous:{title:"\u6570\u636e\u8f6c\u53d1\u9879\u76ee",permalink:"/touchsocket/docs/dataforwarding"},next:{title:"FPS\u5b9e\u65f6\u6e38\u620f",permalink:"/touchsocket/docs/fpsgame"}},l={},d=[{value:"\u5b9a\u5236\u65b9",id:"\u5b9a\u5236\u65b9",level:2},{value:"\u8bf4\u660e",id:"\u8bf4\u660e",level:2},{value:"\u6280\u672f\u70b9",id:"\u6280\u672f\u70b9",level:2},{value:"\u6548\u679c",id:"\u6548\u679c",level:2}],u={toc:d};function p(e){let{components:t,...a}=e;return(0,o.kt)("wrapper",(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u5b9a\u5236\u65b9"},"\u5b9a\u5236\u65b9"),(0,o.kt)("p",null,"\u7f51\u53cb\u201c\u8f6f\u4ef6\u5f00\u53d1\u201d"),(0,o.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,o.kt)("p",null,"\u5e94\u8be5\u7f51\u53cb\u8981\u6c42\uff0c\u9700\u8981\u5b9e\u73b0Web\u7aef\u6570\u636e\u5411Winform\u7aef\u8f6c\u53d1\u7684\u529f\u80fd\u3002"),(0,o.kt)("h2",{id:"\u6280\u672f\u70b9"},"\u6280\u672f\u70b9"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u7f51\u7edc\u7f16\u7a0b")),(0,o.kt)("h2",{id:"\u6548\u679c"},"\u6548\u679c"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"6.gif",src:r(4301).Z,width:"2776",height:"1658"})))}p.isMDXComponent=!0},4301:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/webdataforwarding-1-669ef575ba0422c1a8881c07203101e9.gif"}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[5215],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),d=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=d(r),f=o,m=s["".concat(l,".").concat(f)]||s[f]||p[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=s;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var d=2;d<a;d++)i[d]=r[d];return n.createElement.apply(null,i)}return n.createElement.apply(null,r)}s.displayName="MDXCreateElement"},7506:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>d});var n=r(7462),o=(r(7294),r(3905));const a={id:"webdataforwarding",title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee"},i=void 0,c={unversionedId:"webdataforwarding",id:"webdataforwarding",title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee",description:"\u5b9a\u5236\u65b9",source:"@site/docs/webdataforwarding.mdx",sourceDirName:".",slug:"/webdataforwarding",permalink:"/touchsocket/docs/webdataforwarding",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/webdataforwarding.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"webdataforwarding",title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee"},sidebar:"docs",previous:{title:"\u6570\u636e\u8f6c\u53d1\u9879\u76ee",permalink:"/touchsocket/docs/dataforwarding"},next:{title:"FPS\u5b9e\u65f6\u6e38\u620f",permalink:"/touchsocket/docs/fpsgame"}},l={},d=[{value:"\u5b9a\u5236\u65b9",id:"\u5b9a\u5236\u65b9",level:2},{value:"\u8bf4\u660e",id:"\u8bf4\u660e",level:2},{value:"\u6280\u672f\u70b9",id:"\u6280\u672f\u70b9",level:2},{value:"\u6548\u679c",id:"\u6548\u679c",level:2}],u={toc:d};function p(e){let{components:t,...a}=e;return(0,o.kt)("wrapper",(0,n.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u5b9a\u5236\u65b9"},"\u5b9a\u5236\u65b9"),(0,o.kt)("p",null,"\u7f51\u53cb\u201c\u8f6f\u4ef6\u5f00\u53d1\u201d"),(0,o.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,o.kt)("p",null,"\u5e94\u8be5\u7f51\u53cb\u8981\u6c42\uff0c\u9700\u8981\u5b9e\u73b0Web\u7aef\u6570\u636e\u5411Winform\u7aef\u8f6c\u53d1\u7684\u529f\u80fd\u3002"),(0,o.kt)("h2",{id:"\u6280\u672f\u70b9"},"\u6280\u672f\u70b9"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u7f51\u7edc\u7f16\u7a0b")),(0,o.kt)("h2",{id:"\u6548\u679c"},"\u6548\u679c"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"6.gif",src:r(3059).Z,width:"2776",height:"1658"})))}p.isMDXComponent=!0},3059:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/webdataforwarding-1-669ef575ba0422c1a8881c07203101e9.gif"}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[7987],{5745:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[2362],{5745:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[1969],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var o=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function g(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},l=Object.keys(e);for(o=0;o<l.length;o++)r=l[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o<l.length;o++)r=l[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=o.createContext({}),c=function(e){var t=o.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=c(e.components);return o.createElement(i.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,i=e.parentName,p=g(e,["components","mdxType","originalType","parentName"]),u=c(r),d=n,m=u["".concat(i,".").concat(d)]||u[d]||s[d]||l;return r?o.createElement(m,a(a({ref:t},p),{},{components:r})):o.createElement(m,a({ref:t},p))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,a=new Array(l);a[0]=u;var g={};for(var i in t)hasOwnProperty.call(t,i)&&(g[i]=t[i]);g.originalType=e,g.mdxType="string"==typeof e?e:n,a[1]=g;for(var c=2;c<l;c++)a[c]=r[c];return o.createElement.apply(null,a)}return o.createElement.apply(null,r)}u.displayName="MDXCreateElement"},3094:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>a,default:()=>s,frontMatter:()=>l,metadata:()=>g,toc:()=>c});var o=r(7462),n=(r(7294),r(3905));const l={id:"ilog",title:"\u65e5\u5fd7\u8bb0\u5f55\u5668"},a=void 0,g={unversionedId:"ilog",id:"ilog",title:"\u65e5\u5fd7\u8bb0\u5f55\u5668",description:"\u4e00\u3001\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3\uff08ILog\uff09",source:"@site/docs/ilog.mdx",sourceDirName:".",slug:"/ilog",permalink:"/touchsocket/docs/ilog",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/ilog.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"ilog",title:"\u65e5\u5fd7\u8bb0\u5f55\u5668"},sidebar:"docs",previous:{title:"\u6570\u636e\u52a0\u5bc6",permalink:"/touchsocket/docs/datasecurity"},next:{title:"\u5e94\u7528\u4fe1\u4f7f",permalink:"/touchsocket/docs/appmessenger"}},i={},c=[{value:"\u4e00\u3001\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3\uff08ILog\uff09",id:"\u4e00\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3ilog",level:2},{value:"\u4e8c\u3001\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08ConsoleLogger\uff09",id:"\u4e8c\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668consolelogger",level:2},{value:"\u4e09\u3001\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08FileLogger\uff09",id:"\u4e09\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668filelogger",level:2},{value:"\u56db\u3001\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668\uff08LoggerGroup\uff09",id:"\u56db\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668loggergroup",level:2},{value:"\u4e94\u3001\u65e5\u5fd7\u6269\u5c55",id:"\u4e94\u65e5\u5fd7\u6269\u5c55",level:2}],p={toc:c};function s(e){let{components:t,...l}=e;return(0,n.kt)("wrapper",(0,o.Z)({},p,l,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"\u4e00\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3ilog"},"\u4e00\u3001\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3\uff08ILog\uff09"),(0,n.kt)("p",null,"\u7ee7\u627fILog\u63a5\u53e3\uff0c\u7136\u540e\u5b9e\u73b0\u4ee5\u4e0b\u65b9\u6cd5\u3002\u5373\u53ef\u5b9e\u73b0\u5185\u90e8\u7684\u65e5\u5fd7\u8bb0\u5f55\u3002\n\u5f53\u7528\u6237\u81ea\u884c\u8f93\u51fa\u65e5\u5fd7\u65f6\uff0c\u53ef\u81ea\u884c\u5b9e\u73b0\u8fc7\u7a0b\u3002"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},"class MyLogger : ILog\n{\n public LogType LogType { get; set; } = LogType.Debug | LogType.Error;\n\n public void Log(LogType logType, object source, string message, Exception exception)\n {\n //\u6b64\u5904\u5c31\u662f\u65e5\u5fd7\u5b9e\u9645\u8f93\u51fa\u7684\u4f4d\u7f6e\u3002\n }\n}\n")),(0,n.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,n.kt)("p",{parentName:"admonition"},(0,n.kt)("strong",{parentName:"p"},"LogType")," \u8868\u793a\u5f53\u524d\u65e5\u5fd7\u7684\u53ef\u8f93\u51fa\u7c7b\u578b\uff0c\u5e76\u975e\u8f93\u51fa\u7ea7\u522b\uff0c\u6240\u4ee5\u5f53\u9700\u8981\u8f93\u51fa\u591a\u79cd\u7c7b\u578b\u65f6\uff0c\u8bf7\u8fdb\u884c\u4f4d\u57df\u64cd\u4f5c\u3002")),(0,n.kt)("h2",{id:"\u4e8c\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668consolelogger"},"\u4e8c\u3001\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08ConsoleLogger\uff09"),(0,n.kt)("p",null,"\u5728\u4f7f\u7528\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668\u65f6\uff0c\u4f1a\u6309\u7167\u4ee5\u4e0b\u683c\u5f0f\u8f93\u51fa\u3002\n",(0,n.kt)("img",{alt:"image.png",src:r(7426).Z,width:"920",height:"198"})),(0,n.kt)("h2",{id:"\u4e09\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668filelogger"},"\u4e09\u3001\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08FileLogger\uff09"),(0,n.kt)("p",null,"\u5728\u4f7f\u7528\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668\u65f6\uff0c\u5148\u4f1a\u5728\u6307\u5b9a\u76ee\u5f55\u4e0b\u521b\u5efa\u201clogs\u201d\u76ee\u5f55\uff0c\u7136\u540e\u6309\u65e5\u671f\u751f\u6210\u201c.log\u201d\u6587\u4ef6\u3002\n",(0,n.kt)("img",{alt:"image.png",src:r(7405).Z,width:"940",height:"202"})),(0,n.kt)("h2",{id:"\u56db\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668loggergroup"},"\u56db\u3001\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668\uff08LoggerGroup\uff09"),(0,n.kt)("p",null,"\u4f7f\u7528\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668\u65f6\uff0c\u53ef\u4ee5\u540c\u65f6\u8bb0\u5f55\u591a\u4e2a\u65e5\u5fd7\uff0c\u4f8b\u5982\uff1a\u4e0b\u5217\u793a\u4f8b\u5c31\u540c\u65f6\u5728\u63a7\u5236\u53f0\u548c\u6587\u4ef6\u8bb0\u5f55\u65e5\u5fd7\u3002"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},"LoggerGroup logger = new LoggerGroup(new ConsoleLogger(),new FileLogger());\n")),(0,n.kt)("h2",{id:"\u4e94\u65e5\u5fd7\u6269\u5c55"},"\u4e94\u3001\u65e5\u5fd7\u6269\u5c55"),(0,n.kt)("p",null,"\u5f15\u5165\u547d\u540d\u7a7a\u95f4\u3002\u53ef\u5feb\u6377\u8bb0\u5f55\u65e5\u5fd7\u3002"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},'LoggerGroup logger = new LoggerGroup(new ConsoleLogger(),new FileLogger());\nlogger.Info("Message");\nlogger.Warning("Warning");\nlogger.Error("Error");\n')))}s.isMDXComponent=!0},7426:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/ilog-1-cfa95e95bee4088509c9c35784bca442.png"},7405:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/ilog-2-715cd211ac8ac352a6e44fd2ac11f6ee.png"}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[1969],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>d});var o=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function g(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},l=Object.keys(e);for(o=0;o<l.length;o++)r=l[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o<l.length;o++)r=l[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=o.createContext({}),c=function(e){var t=o.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=c(e.components);return o.createElement(i.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},u=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,l=e.originalType,i=e.parentName,p=g(e,["components","mdxType","originalType","parentName"]),u=c(r),d=n,m=u["".concat(i,".").concat(d)]||u[d]||s[d]||l;return r?o.createElement(m,a(a({ref:t},p),{},{components:r})):o.createElement(m,a({ref:t},p))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=r.length,a=new Array(l);a[0]=u;var g={};for(var i in t)hasOwnProperty.call(t,i)&&(g[i]=t[i]);g.originalType=e,g.mdxType="string"==typeof e?e:n,a[1]=g;for(var c=2;c<l;c++)a[c]=r[c];return o.createElement.apply(null,a)}return o.createElement.apply(null,r)}u.displayName="MDXCreateElement"},3094:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>a,default:()=>s,frontMatter:()=>l,metadata:()=>g,toc:()=>c});var o=r(7462),n=(r(7294),r(3905));const l={id:"ilog",title:"\u65e5\u5fd7\u8bb0\u5f55\u5668"},a=void 0,g={unversionedId:"ilog",id:"ilog",title:"\u65e5\u5fd7\u8bb0\u5f55\u5668",description:"\u4e00\u3001\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3\uff08ILog\uff09",source:"@site/docs/ilog.mdx",sourceDirName:".",slug:"/ilog",permalink:"/touchsocket/docs/ilog",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/ilog.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"ilog",title:"\u65e5\u5fd7\u8bb0\u5f55\u5668"},sidebar:"docs",previous:{title:"\u6570\u636e\u52a0\u5bc6",permalink:"/touchsocket/docs/datasecurity"},next:{title:"\u5e94\u7528\u4fe1\u4f7f",permalink:"/touchsocket/docs/appmessenger"}},i={},c=[{value:"\u4e00\u3001\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3\uff08ILog\uff09",id:"\u4e00\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3ilog",level:2},{value:"\u4e8c\u3001\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08ConsoleLogger\uff09",id:"\u4e8c\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668consolelogger",level:2},{value:"\u4e09\u3001\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08FileLogger\uff09",id:"\u4e09\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668filelogger",level:2},{value:"\u56db\u3001\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668\uff08LoggerGroup\uff09",id:"\u56db\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668loggergroup",level:2},{value:"\u4e94\u3001\u65e5\u5fd7\u6269\u5c55",id:"\u4e94\u65e5\u5fd7\u6269\u5c55",level:2}],p={toc:c};function s(e){let{components:t,...l}=e;return(0,n.kt)("wrapper",(0,o.Z)({},p,l,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h2",{id:"\u4e00\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3ilog"},"\u4e00\u3001\u65e5\u5fd7\u8bb0\u5f55\u63a5\u53e3\uff08ILog\uff09"),(0,n.kt)("p",null,"\u7ee7\u627fILog\u63a5\u53e3\uff0c\u7136\u540e\u5b9e\u73b0\u4ee5\u4e0b\u65b9\u6cd5\u3002\u5373\u53ef\u5b9e\u73b0\u5185\u90e8\u7684\u65e5\u5fd7\u8bb0\u5f55\u3002\n\u5f53\u7528\u6237\u81ea\u884c\u8f93\u51fa\u65e5\u5fd7\u65f6\uff0c\u53ef\u81ea\u884c\u5b9e\u73b0\u8fc7\u7a0b\u3002"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},"class MyLogger : ILog\n{\n public LogType LogType { get; set; } = LogType.Debug | LogType.Error;\n\n public void Log(LogType logType, object source, string message, Exception exception)\n {\n //\u6b64\u5904\u5c31\u662f\u65e5\u5fd7\u5b9e\u9645\u8f93\u51fa\u7684\u4f4d\u7f6e\u3002\n }\n}\n")),(0,n.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,n.kt)("p",{parentName:"admonition"},(0,n.kt)("strong",{parentName:"p"},"LogType")," \u8868\u793a\u5f53\u524d\u65e5\u5fd7\u7684\u53ef\u8f93\u51fa\u7c7b\u578b\uff0c\u5e76\u975e\u8f93\u51fa\u7ea7\u522b\uff0c\u6240\u4ee5\u5f53\u9700\u8981\u8f93\u51fa\u591a\u79cd\u7c7b\u578b\u65f6\uff0c\u8bf7\u8fdb\u884c\u4f4d\u57df\u64cd\u4f5c\u3002")),(0,n.kt)("h2",{id:"\u4e8c\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668consolelogger"},"\u4e8c\u3001\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08ConsoleLogger\uff09"),(0,n.kt)("p",null,"\u5728\u4f7f\u7528\u63a7\u5236\u53f0\u65e5\u5fd7\u8bb0\u5f55\u5668\u65f6\uff0c\u4f1a\u6309\u7167\u4ee5\u4e0b\u683c\u5f0f\u8f93\u51fa\u3002\n",(0,n.kt)("img",{alt:"image.png",src:r(1208).Z,width:"920",height:"198"})),(0,n.kt)("h2",{id:"\u4e09\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668filelogger"},"\u4e09\u3001\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668\uff08FileLogger\uff09"),(0,n.kt)("p",null,"\u5728\u4f7f\u7528\u6587\u4ef6\u65e5\u5fd7\u8bb0\u5f55\u5668\u65f6\uff0c\u5148\u4f1a\u5728\u6307\u5b9a\u76ee\u5f55\u4e0b\u521b\u5efa\u201clogs\u201d\u76ee\u5f55\uff0c\u7136\u540e\u6309\u65e5\u671f\u751f\u6210\u201c.log\u201d\u6587\u4ef6\u3002\n",(0,n.kt)("img",{alt:"image.png",src:r(1578).Z,width:"940",height:"202"})),(0,n.kt)("h2",{id:"\u56db\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668loggergroup"},"\u56db\u3001\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668\uff08LoggerGroup\uff09"),(0,n.kt)("p",null,"\u4f7f\u7528\u65e5\u5fd7\u7ec4\u8bb0\u5f55\u5668\u65f6\uff0c\u53ef\u4ee5\u540c\u65f6\u8bb0\u5f55\u591a\u4e2a\u65e5\u5fd7\uff0c\u4f8b\u5982\uff1a\u4e0b\u5217\u793a\u4f8b\u5c31\u540c\u65f6\u5728\u63a7\u5236\u53f0\u548c\u6587\u4ef6\u8bb0\u5f55\u65e5\u5fd7\u3002"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},"LoggerGroup logger = new LoggerGroup(new ConsoleLogger(),new FileLogger());\n")),(0,n.kt)("h2",{id:"\u4e94\u65e5\u5fd7\u6269\u5c55"},"\u4e94\u3001\u65e5\u5fd7\u6269\u5c55"),(0,n.kt)("p",null,"\u5f15\u5165\u547d\u540d\u7a7a\u95f4\u3002\u53ef\u5feb\u6377\u8bb0\u5f55\u65e5\u5fd7\u3002"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},'LoggerGroup logger = new LoggerGroup(new ConsoleLogger(),new FileLogger());\nlogger.Info("Message");\nlogger.Warning("Warning");\nlogger.Error("Error");\n')))}s.isMDXComponent=!0},1208:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/ilog-1-cfa95e95bee4088509c9c35784bca442.png"},1578:(e,t,r)=>{r.d(t,{Z:()=>o});const o=r.p+"assets/images/ilog-2-715cd211ac8ac352a6e44fd2ac11f6ee.png"}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[8719],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},c=Object.keys(e);for(r=0;r<c.length;r++)n=c[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r<c.length;r++)n=c[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),p=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,c=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=p(n),k=o,f=d["".concat(i,".").concat(k)]||d[k]||s[k]||c;return n?r.createElement(f,a(a({ref:t},u),{},{components:n})):r.createElement(f,a({ref:t},u))}));function k(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=n.length,a=new Array(c);a[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l.mdxType="string"==typeof e?e:o,a[1]=l;for(var p=2;p<c;p++)a[p]=n[p];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},8610:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>a,default:()=>s,frontMatter:()=>c,metadata:()=>l,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const c={id:"touchrpcbase",title:"\u57fa\u7840\u529f\u80fd"},a=void 0,l={unversionedId:"touchrpcbase",id:"touchrpcbase",title:"\u57fa\u7840\u529f\u80fd",description:"\u4e00\u3001\u8fde\u63a5\u9a8c\u8bc1",source:"@site/docs/touchrpcbase.mdx",sourceDirName:".",slug:"/touchrpcbase",permalink:"/touchsocket/docs/touchrpcbase",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/touchrpcbase.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"touchrpcbase",title:"\u57fa\u7840\u529f\u80fd"},sidebar:"docs",previous:{title:"\u521b\u5efaTouchRpc\u5ba2\u6237\u7aef",permalink:"/touchsocket/docs/createtouchrpcclient"},next:{title:"\u521b\u5efarpc\u670d\u52a1",permalink:"/touchsocket/docs/createandcallrpc"}},i={},p=[{value:"\u4e00\u3001\u8fde\u63a5\u9a8c\u8bc1",id:"\u4e00\u8fde\u63a5\u9a8c\u8bc1",level:2},{value:"1.1 Token\u9a8c\u8bc1",id:"11-token\u9a8c\u8bc1",level:3},{value:"1.2 \u52a8\u6001\u9a8c\u8bc1",id:"12-\u52a8\u6001\u9a8c\u8bc1",level:3},{value:"\u4e8c\u3001ID\u540c\u6b65",id:"\u4e8cid\u540c\u6b65",level:2},{value:"\u4e09\u3001\u534f\u8bae\u6269\u5c55",id:"\u4e09\u534f\u8bae\u6269\u5c55",level:2},{value:"3.1 \u4f7f\u7528",id:"31-\u4f7f\u7528",level:3}],u={toc:p};function s(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u8fde\u63a5\u9a8c\u8bc1"},"\u4e00\u3001\u8fde\u63a5\u9a8c\u8bc1"),(0,o.kt)("p",null,"\u8fde\u63a5\u9a8c\u8bc1\u53ef\u4ee5\u521d\u6b65\u4fdd\u8bc1\u8fde\u63a5\u5ba2\u6237\u7aef\u7684\u5b89\u5168\u6027\u3002\u6846\u67b6\u5185\u90e8\u9ed8\u8ba4\u4f7f\u7528\u4e00\u4e2astring\u7c7b\u578b\u7684Token\u4f5c\u4e3a\u9a8c\u8bc1\u51ed\u8bc1\u3002\u5f53\u7136\u4e5f\u5141\u8bb8\u670d\u52a1\u5668\u8fdb\u884c\u5176\u4ed6\u9a8c\u8bc1\u3002\u5177\u4f53\u5982\u4e0b\uff1a"),(0,o.kt)("h3",{id:"11-token\u9a8c\u8bc1"},"1.1 Token\u9a8c\u8bc1"),(0,o.kt)("p",null,"\u5728\u670d\u52a1\u5668\u6216\u5ba2\u6237\u7aef\u7684\u914d\u7f6e\u4e0a\uff0c\u8bbe\u7f6eVerifyToken\uff0c\u5373\u53ef\u5b9e\u73b0\u5b57\u7b26\u4e32Token\u9a8c\u8bc1\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'var config = new TouchSocketConfig()//\u914d\u7f6e\n .SetVerifyToken("TouchRpc");\n\n')),(0,o.kt)("h3",{id:"12-\u52a8\u6001\u9a8c\u8bc1"},"1.2 \u52a8\u6001\u9a8c\u8bc1"),(0,o.kt)("p",null,"\u4f7f\u7528\u63d2\u4ef6\uff0c\u91cd\u5199",(0,o.kt)("strong",{parentName:"p"},"OnHandshaking"),"\u76f8\u5173\u3002\u7136\u540e\u53ef\u4ee5\u81ea\u884c\u5224\u65ad\u4e00\u4e9b\u4fe1\u606f\uff0c\u6bd4\u5982\uff1aIP\u5730\u5740\u3001\u5143\u6570\u636e\u7b49\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'internal class MyTouchRpcPlugin : TouchRpcPluginBase\n{\n protected override void OnHandshaking(ITouchRpc client, VerifyOptionEventArgs e)\n {\n if (e.Metadata["a"] != "a")\n {\n e.IsPermitOperation = false;//\u4e0d\u5141\u8bb8\u8fde\u63a5\n e.Message = "\u5143\u6570\u636e\u4e0d\u5bf9";//\u540c\u65f6\u8fd4\u56de\u6d88\u606f\n e.Handled= true;//\u8868\u793a\u8be5\u6d88\u606f\u5df2\u5728\u6b64\u5904\u5904\u7406\u3002\n return;\n }\n if (e.Token == "123")\n {\n e.IsPermitOperation = true;\n e.Handled = true;\n return;\n }\n base.OnHandshaking(client, e);\n }\n}\n')),(0,o.kt)("h2",{id:"\u4e8cid\u540c\u6b65"},"\u4e8c\u3001ID\u540c\u6b65"),(0,o.kt)("p",null,"\u5728TouchRpc\u4e2d\uff0c\u5b58\u5728\u4e8e\u670d\u52a1\u5668\u7684\u8f85\u52a9\u5ba2\u6237\u7aef\uff08SocketClient\uff09\uff0c\u4e0e\u8fdc\u7a0b\u5ba2\u6237\u7aef\uff08Client\uff09\u662f\u4e00\u4e00\u5bf9\u5e94\u5173\u7cfb\uff0c\u5176ID\u4e5f",(0,o.kt)("strong",{parentName:"p"},"\u5b8c\u5168\u4e00\u81f4"),"\u3002\u6240\u4ee5\u5728\u4efb\u610f\u4e00\u65b9\u4fee\u6539ID\uff08\u8c03\u7528ResetID\uff09\uff0c\u90fd\u4f1a\u540c\u65f6\u4fee\u6539\u8fdc\u7a0bID\u3002\u6240\u4ee5\u5408\u7406\u4f7f\u7528\u8be5\u64cd\u4f5c\uff0c\u53ef\u4ee5\u5b8c\u6210\u590d\u7528ID\uff08\u91cd\u7f6eID\uff09\u7684\u9700\u6c42\u3002"),(0,o.kt)("h2",{id:"\u4e09\u534f\u8bae\u6269\u5c55"},"\u4e09\u3001\u534f\u8bae\u6269\u5c55"),(0,o.kt)("p",null,"\u534f\u8bae\u6269\u5c55\u529f\u80fd\uff0c\u5c31\u662f\u5bf9\u73b0\u6709\u7684TouchRpc\u8fdb\u884c\u81ea\u5b9a\u4e49\u7684\u6269\u5c55\u534f\u8bae\u3002\u5176\u76ee\u7684\u5c31\u662f\u4e3a\u4e86\u5e94\u5bf9\u66f4\u52a0\u590d\u6742\uff0c\u9ad8\u8981\u6c42\u7684\u9700\u6c42\u3002"),(0,o.kt)("p",null,"\u4f8b1\uff1a\u5f53\u9700\u8981\u5e7f\u64ad\u6d88\u606f\u65f6\uff0c\u53ef\u80fd\u5927\u5bb6\u90fd\u4f1a\u60f3\u5230\u4f7f\u7528rpc\u76f4\u63a5\u8fdb\u884c\u5e7f\u64ad\u3002\u4f46\u662f\u5982\u6b64\u4e00\u6765\uff0c\u6bcf\u5e7f\u64ad\u4e00\u4e2a\u5ba2\u6237\u7aef\uff0c\u5c31\u9700\u8981\u5e8f\u5217\u5316\u4e00\u6b21\u3002\u56e0\u4e3a\u6570\u636e\u90fd\u662f\u4e00\u6837\u7684\uff0c\u6240\u4ee5\u591a\u6b21\u5e8f\u5217\u5316\u663e\u5f97\u975e\u5e38\u6ca1\u6709\u5fc5\u8981\u3002\u90a3\u4e48\u8fd9\u65f6\u5019\uff0c\u53ef\u4ee5\u81ea\u5b9a\u4e49\u534f\u8bae\uff0c\u7136\u540e\u5148\u5e8f\u5217\u5316\uff0c\u7136\u540e\u76f4\u63a5\u5e7f\u64ad\u6570\u636e\u3002"),(0,o.kt)("p",null,"\u81ea\u5b9a\u4e49\u534f\u8bae\u6548\u7387\u5982\u4f55\u5462\uff1f\n\u81ea\u5b9a\u4e49\u534f\u8bae\u7684\u6548\u7387\u662f\u975e\u5e38\u9ad8\u7684\uff0c99%\u63a5\u8fd1\u4e8e\u5e95\u5c42\u534f\u8bae\uff08\u53ef\u80fd\u662ftcp\u3001udp\u3001websocket\uff09\u6548\u7387\u3002"),(0,o.kt)("h3",{id:"31-\u4f7f\u7528"},"3.1 \u4f7f\u7528"),(0,o.kt)("p",null,"\u4f7f\u7528\u8d77\u6765\u662f\u975e\u5e38\u7b80\u5355\u7684\uff0c\u6bcf\u4e2aTouchRpc\u5ba2\u6237\u7aef\u6216\u8005TouchRpc\u670d\u52a1\u7aef\uff0c\u90fd\u5b9e\u73b0\u4e86Send\u65b9\u6cd5\u63a5\u53e3\u3002\n\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e3ashort\u7c7b\u578b\uff0c\u4f7f\u7528\u8005\u53ef\u4ee5",(0,o.kt)("strong",{parentName:"p"},"\u7ea6\u5b9a\u4efb\u610f\u6570\u503c"),"\uff08",(0,o.kt)("strong",{parentName:"p"},"\u4e0d\u8981\u4f7f\u7528\u5c0f\u4e8e0\u7684\uff0c\u56e0\u4e3a\u6846\u67b6\u5185\u90e8\u5728\u4f7f\u7528"),"\uff09\u3002"),(0,o.kt)("p",null,"\u5728",(0,o.kt)("strong",{parentName:"p"},"\u63a5\u6536\u65b9"),"\u5728OnReceivedProtocolData\u51fd\u6570\u4e2d\uff0c\u5df2\u7ecf\u5305\u542b\u4e86\u534f\u8bae\u53c2\u6570\uff0c\u6240\u4ee5\u76f4\u63a5\u81ea\u884c\u7b5b\u9009\u5373\u53ef\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},"internal class MyTouchRpcPlugin : TouchRpcPluginBase\n{\n protected override void OnReceivedProtocolData(ITouchRpc client, ProtocolDataEventArgs e)\n {\n if (e.Protocol == 10)\n {\n //\u5224\u65ad\u5b8c\u534f\u8bae\u4ee5\u540e\uff0c\u4ecee.ByteBlock\u53ef\u4ee5\u62ff\u5230\u5b9e\u9645\u7684\u6570\u636e\n //\u4f46\u662f\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u771f\u5b9e\u6570\u636e\u4f1a\u6574\u4f53\u5411\u53f3\u504f\u79fb2\u4e2a\u5b57\u8282\u3002\n string msg = Encoding.UTF8.GetString(e.ByteBlock.Buffer, 2, e.ByteBlock.Len - 2);\n }\n base.OnReceivedProtocolData(client, e);\n }\n}\n")),(0,o.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"\u4eceProtocolDataEventArgs\u89e3\u6790\u7684ByteBlock\uff0c\u5176\u771f\u5b9e\u6570\u636e\u4f1a\u6574\u4f53\u5411\u53f3\u504f\u79fb2\u4e2a\u5b57\u8282\u3002\u56e0\u4e3a\u524d\u4e24\u4e2a\u5b57\u8282\u662fushort\u7684Protocol\u3002")))}s.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[8719],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},c=Object.keys(e);for(r=0;r<c.length;r++)n=c[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r<c.length;r++)n=c[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),p=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,c=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=p(n),k=o,m=d["".concat(i,".").concat(k)]||d[k]||s[k]||c;return n?r.createElement(m,a(a({ref:t},u),{},{components:n})):r.createElement(m,a({ref:t},u))}));function k(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=n.length,a=new Array(c);a[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l.mdxType="string"==typeof e?e:o,a[1]=l;for(var p=2;p<c;p++)a[p]=n[p];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},8610:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>a,default:()=>s,frontMatter:()=>c,metadata:()=>l,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const c={id:"touchrpcbase",title:"\u57fa\u7840\u529f\u80fd"},a=void 0,l={unversionedId:"touchrpcbase",id:"touchrpcbase",title:"\u57fa\u7840\u529f\u80fd",description:"\u4e00\u3001\u8fde\u63a5\u9a8c\u8bc1",source:"@site/docs/touchrpcbase.mdx",sourceDirName:".",slug:"/touchrpcbase",permalink:"/touchsocket/docs/touchrpcbase",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/touchrpcbase.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"touchrpcbase",title:"\u57fa\u7840\u529f\u80fd"},sidebar:"docs",previous:{title:"\u521b\u5efaTouchRpc\u5ba2\u6237\u7aef",permalink:"/touchsocket/docs/createtouchrpcclient"},next:{title:"\u521b\u5efarpc\u670d\u52a1",permalink:"/touchsocket/docs/createandcallrpc"}},i={},p=[{value:"\u4e00\u3001\u8fde\u63a5\u9a8c\u8bc1",id:"\u4e00\u8fde\u63a5\u9a8c\u8bc1",level:2},{value:"1.1 Token\u9a8c\u8bc1",id:"11-token\u9a8c\u8bc1",level:3},{value:"1.2 \u52a8\u6001\u9a8c\u8bc1",id:"12-\u52a8\u6001\u9a8c\u8bc1",level:3},{value:"\u4e8c\u3001ID\u540c\u6b65",id:"\u4e8cid\u540c\u6b65",level:2},{value:"\u4e09\u3001\u534f\u8bae\u6269\u5c55",id:"\u4e09\u534f\u8bae\u6269\u5c55",level:2},{value:"3.1 \u4f7f\u7528",id:"31-\u4f7f\u7528",level:3}],u={toc:p};function s(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u8fde\u63a5\u9a8c\u8bc1"},"\u4e00\u3001\u8fde\u63a5\u9a8c\u8bc1"),(0,o.kt)("p",null,"\u8fde\u63a5\u9a8c\u8bc1\u53ef\u4ee5\u521d\u6b65\u4fdd\u8bc1\u8fde\u63a5\u5ba2\u6237\u7aef\u7684\u5b89\u5168\u6027\u3002\u6846\u67b6\u5185\u90e8\u9ed8\u8ba4\u4f7f\u7528\u4e00\u4e2astring\u7c7b\u578b\u7684Token\u4f5c\u4e3a\u9a8c\u8bc1\u51ed\u8bc1\u3002\u5f53\u7136\u4e5f\u5141\u8bb8\u670d\u52a1\u5668\u8fdb\u884c\u5176\u4ed6\u9a8c\u8bc1\u3002\u5177\u4f53\u5982\u4e0b\uff1a"),(0,o.kt)("h3",{id:"11-token\u9a8c\u8bc1"},"1.1 Token\u9a8c\u8bc1"),(0,o.kt)("p",null,"\u5728\u670d\u52a1\u5668\u6216\u5ba2\u6237\u7aef\u7684\u914d\u7f6e\u4e0a\uff0c\u8bbe\u7f6eVerifyToken\uff0c\u5373\u53ef\u5b9e\u73b0\u5b57\u7b26\u4e32Token\u9a8c\u8bc1\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'var config = new TouchSocketConfig()//\u914d\u7f6e\n .SetVerifyToken("TouchRpc");\n\n')),(0,o.kt)("h3",{id:"12-\u52a8\u6001\u9a8c\u8bc1"},"1.2 \u52a8\u6001\u9a8c\u8bc1"),(0,o.kt)("p",null,"\u4f7f\u7528\u63d2\u4ef6\uff0c\u91cd\u5199",(0,o.kt)("strong",{parentName:"p"},"OnHandshaking"),"\u76f8\u5173\u3002\u7136\u540e\u53ef\u4ee5\u81ea\u884c\u5224\u65ad\u4e00\u4e9b\u4fe1\u606f\uff0c\u6bd4\u5982\uff1aIP\u5730\u5740\u3001\u5143\u6570\u636e\u7b49\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'internal class MyTouchRpcPlugin : TouchRpcPluginBase\n{\n protected override void OnHandshaking(ITouchRpc client, VerifyOptionEventArgs e)\n {\n if (e.Metadata["a"] != "a")\n {\n e.IsPermitOperation = false;//\u4e0d\u5141\u8bb8\u8fde\u63a5\n e.Message = "\u5143\u6570\u636e\u4e0d\u5bf9";//\u540c\u65f6\u8fd4\u56de\u6d88\u606f\n e.Handled= true;//\u8868\u793a\u8be5\u6d88\u606f\u5df2\u5728\u6b64\u5904\u5904\u7406\u3002\n return;\n }\n if (e.Token == "123")\n {\n e.IsPermitOperation = true;\n e.Handled = true;\n return;\n }\n base.OnHandshaking(client, e);\n }\n}\n')),(0,o.kt)("h2",{id:"\u4e8cid\u540c\u6b65"},"\u4e8c\u3001ID\u540c\u6b65"),(0,o.kt)("p",null,"\u5728TouchRpc\u4e2d\uff0c\u5b58\u5728\u4e8e\u670d\u52a1\u5668\u7684\u8f85\u52a9\u5ba2\u6237\u7aef\uff08SocketClient\uff09\uff0c\u4e0e\u8fdc\u7a0b\u5ba2\u6237\u7aef\uff08Client\uff09\u662f\u4e00\u4e00\u5bf9\u5e94\u5173\u7cfb\uff0c\u5176ID\u4e5f",(0,o.kt)("strong",{parentName:"p"},"\u5b8c\u5168\u4e00\u81f4"),"\u3002\u6240\u4ee5\u5728\u4efb\u610f\u4e00\u65b9\u4fee\u6539ID\uff08\u8c03\u7528ResetID\uff09\uff0c\u90fd\u4f1a\u540c\u65f6\u4fee\u6539\u8fdc\u7a0bID\u3002\u6240\u4ee5\u5408\u7406\u4f7f\u7528\u8be5\u64cd\u4f5c\uff0c\u53ef\u4ee5\u5b8c\u6210\u590d\u7528ID\uff08\u91cd\u7f6eID\uff09\u7684\u9700\u6c42\u3002"),(0,o.kt)("h2",{id:"\u4e09\u534f\u8bae\u6269\u5c55"},"\u4e09\u3001\u534f\u8bae\u6269\u5c55"),(0,o.kt)("p",null,"\u534f\u8bae\u6269\u5c55\u529f\u80fd\uff0c\u5c31\u662f\u5bf9\u73b0\u6709\u7684TouchRpc\u8fdb\u884c\u81ea\u5b9a\u4e49\u7684\u6269\u5c55\u534f\u8bae\u3002\u5176\u76ee\u7684\u5c31\u662f\u4e3a\u4e86\u5e94\u5bf9\u66f4\u52a0\u590d\u6742\uff0c\u9ad8\u8981\u6c42\u7684\u9700\u6c42\u3002"),(0,o.kt)("p",null,"\u4f8b1\uff1a\u5f53\u9700\u8981\u5e7f\u64ad\u6d88\u606f\u65f6\uff0c\u53ef\u80fd\u5927\u5bb6\u90fd\u4f1a\u60f3\u5230\u4f7f\u7528rpc\u76f4\u63a5\u8fdb\u884c\u5e7f\u64ad\u3002\u4f46\u662f\u5982\u6b64\u4e00\u6765\uff0c\u6bcf\u5e7f\u64ad\u4e00\u4e2a\u5ba2\u6237\u7aef\uff0c\u5c31\u9700\u8981\u5e8f\u5217\u5316\u4e00\u6b21\u3002\u56e0\u4e3a\u6570\u636e\u90fd\u662f\u4e00\u6837\u7684\uff0c\u6240\u4ee5\u591a\u6b21\u5e8f\u5217\u5316\u663e\u5f97\u975e\u5e38\u6ca1\u6709\u5fc5\u8981\u3002\u90a3\u4e48\u8fd9\u65f6\u5019\uff0c\u53ef\u4ee5\u81ea\u5b9a\u4e49\u534f\u8bae\uff0c\u7136\u540e\u5148\u5e8f\u5217\u5316\uff0c\u7136\u540e\u76f4\u63a5\u5e7f\u64ad\u6570\u636e\u3002"),(0,o.kt)("p",null,"\u81ea\u5b9a\u4e49\u534f\u8bae\u6548\u7387\u5982\u4f55\u5462\uff1f\n\u81ea\u5b9a\u4e49\u534f\u8bae\u7684\u6548\u7387\u662f\u975e\u5e38\u9ad8\u7684\uff0c99%\u63a5\u8fd1\u4e8e\u5e95\u5c42\u534f\u8bae\uff08\u53ef\u80fd\u662ftcp\u3001udp\u3001websocket\uff09\u6548\u7387\u3002"),(0,o.kt)("h3",{id:"31-\u4f7f\u7528"},"3.1 \u4f7f\u7528"),(0,o.kt)("p",null,"\u4f7f\u7528\u8d77\u6765\u662f\u975e\u5e38\u7b80\u5355\u7684\uff0c\u6bcf\u4e2aTouchRpc\u5ba2\u6237\u7aef\u6216\u8005TouchRpc\u670d\u52a1\u7aef\uff0c\u90fd\u5b9e\u73b0\u4e86Send\u65b9\u6cd5\u63a5\u53e3\u3002\n\u7b2c\u4e00\u4e2a\u53c2\u6570\u4e3ashort\u7c7b\u578b\uff0c\u4f7f\u7528\u8005\u53ef\u4ee5",(0,o.kt)("strong",{parentName:"p"},"\u7ea6\u5b9a\u4efb\u610f\u5927\u4e8e0\u6570\u503c"),"\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'client.Send(10,Encoding.UTF8.GetBytes("RRQM"));\n')),(0,o.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Protocol\u4e0d\u8981\u4f7f\u7528\u5c0f\u4e8e0\u7684\uff0c\u56e0\u4e3a\u6846\u67b6\u5185\u90e8\u5728\u4f7f\u7528")),(0,o.kt)("p",null,"\u5728",(0,o.kt)("strong",{parentName:"p"},"\u63a5\u6536\u65b9"),"\u5728OnReceivedProtocolData\u51fd\u6570\u4e2d\uff0c\u5df2\u7ecf\u5305\u542b\u4e86\u534f\u8bae\u53c2\u6570\uff0c\u6240\u4ee5\u76f4\u63a5\u81ea\u884c\u7b5b\u9009\u5373\u53ef\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},"internal class MyTouchRpcPlugin : TouchRpcPluginBase\n{\n protected override void OnReceivedProtocolData(ITouchRpc client, ProtocolDataEventArgs e)\n {\n if (e.Protocol == 10)\n {\n //\u5224\u65ad\u5b8c\u534f\u8bae\u4ee5\u540e\uff0c\u4ecee.ByteBlock\u53ef\u4ee5\u62ff\u5230\u5b9e\u9645\u7684\u6570\u636e\n //\u4f46\u662f\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u771f\u5b9e\u6570\u636e\u4f1a\u6574\u4f53\u5411\u53f3\u504f\u79fb2\u4e2a\u5b57\u8282\u3002\n string msg = Encoding.UTF8.GetString(e.ByteBlock.Buffer, 2, e.ByteBlock.Len - 2);\n }\n base.OnReceivedProtocolData(client, e);\n }\n}\n")),(0,o.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"\u4eceProtocolDataEventArgs\u89e3\u6790\u7684ByteBlock\uff0c\u5176\u771f\u5b9e\u6570\u636e\u4f1a\u6574\u4f53\u5411\u53f3\u504f\u79fb2\u4e2a\u5b57\u8282\u3002\u56e0\u4e3a\u524d\u4e24\u4e2a\u5b57\u8282\u662fushort\u7684Protocol\u3002")))}s.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[3371],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>s});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t){if(null==e)return{};var r,n,a=function(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},m=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},k={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),u=c(r),s=a,d=u["".concat(p,".").concat(s)]||u[s]||k[s]||o;return r?n.createElement(d,l(l({ref:t},m),{},{components:r})):n.createElement(d,l({ref:t},m))}));function s(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i.mdxType="string"==typeof e?e:a,l[1]=i;for(var c=2;c<o;c++)l[c]=r[c];return n.createElement.apply(null,l)}return n.createElement.apply(null,r)}u.displayName="MDXCreateElement"},3608:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>k,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(7462),a=(r(7294),r(3905));const o={id:"donate",title:"\u652f\u6301\u4f5c\u8005"},l=void 0,i={unversionedId:"donate",id:"donate",title:"\u652f\u6301\u4f5c\u8005",description:"\u8d5e\u52a9TouchSocket\u9879\u76ee",source:"@site/docs/donate.mdx",sourceDirName:".",slug:"/donate",permalink:"/touchsocket/docs/donate",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/donate.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1676258678,formattedLastUpdatedAt:"Feb 13, 2023",frontMatter:{id:"donate",title:"\u652f\u6301\u4f5c\u8005"},sidebar:"docs",previous:{title:"\u5386\u53f2\u66f4\u65b0",permalink:"/touchsocket/docs/upgrade"},next:{title:"\u4f01\u4e1a\u7248\u76f8\u5173",permalink:"/touchsocket/docs/enterprise"}},p={},c=[{value:"\u8d5e\u52a9TouchSocket\u9879\u76ee",id:"\u8d5e\u52a9touchsocket\u9879\u76ee",level:2},{value:"\u7231\u5fc3\u8d5e\u52a9\u540d\u5355\uff08\u4ee5\u4e0b\u6392\u540d\u53ea\u6309\u7167\u6253\u8d4f\u65f6\u95f4\u987a\u5e8f\uff09",id:"\u7231\u5fc3\u8d5e\u52a9\u540d\u5355\u4ee5\u4e0b\u6392\u540d\u53ea\u6309\u7167\u6253\u8d4f\u65f6\u95f4\u987a\u5e8f",level:3},{value:"\u4e00\u8d77\u559d\u9152\uff1f",id:"\u4e00\u8d77\u559d\u9152",level:3}],m={toc:c};function k(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,n.Z)({},m,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u8d5e\u52a9touchsocket\u9879\u76ee"},"\u8d5e\u52a9TouchSocket\u9879\u76ee"),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"\u60a8\u7684\u652f\u6301\u5c31\u662f\u6211\u4e0d\u61c8\u52aa\u529b\u7684\u52a8\u529b\u3002")),(0,a.kt)("h3",{id:"\u7231\u5fc3\u8d5e\u52a9\u540d\u5355\u4ee5\u4e0b\u6392\u540d\u53ea\u6309\u7167\u6253\u8d4f\u65f6\u95f4\u987a\u5e8f"},"\u7231\u5fc3\u8d5e\u52a9\u540d\u5355\uff08\u4ee5\u4e0b\u6392\u540d\u53ea\u6309\u7167\u6253\u8d4f\u65f6\u95f4\u987a\u5e8f\uff09"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Bobo Joker\uff08200\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"UnitySir\uff0866\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"Coffee\uff08100\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"Ninety\uff0850\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"*\u743c\uff08100\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"**\u5b89\uff085\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"**\u6587\uff08200+200\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"tonychen899\uff0850\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"*\u5e73\uff0850\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u675c\uff08400+100\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u65bd*\u53cc\uff08666\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"*\u7ae5\uff0820\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"Tom (88\uffe5)"),(0,a.kt)("li",{parentName:"ol"},"*\u5f3a\uff08200\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"*\u6f6e\uff0810+20+1+2\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"*\u661f\uff0820\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u8214\u72d7\u53cd\u54ac\u4e8b\u4ef6\uff0866\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u7f8e\u5c11\u5973\u9171\uff0830\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u6d41\u6c34\u6e38\u9c7c\uff089.99\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u534e\u4e3d\u8c22\u5e55\uff0833+20\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u9601\u4e3b\u60a6\u6f9c\u6b87\uff0850+50\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u70c8\u65e5\uff0820+20\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"Silent\uff0850\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u6708\u534e\u6563\uff0850\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u9ec4*\u5fb7\uff08PayPal\uff1a1000NT$\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u4e00\u5934\u5927\u72ee\u5b50\uff0820\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u848b*\u79cb\uff08188\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"**\u53d1\uff08100+100\xa5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u68a6\u60f3\u9065\u4e0d\u53ef\u53ca\uff08128+98\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u53ef\u7231\u53c8\u5584\u826f\u7684\u6211\uff08100\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"*\u541b\uff086.6\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"*\u4e8e\uff0830\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"J*n\uff08100\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"D*Y\uff0820\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"*\u4eba\uff0850\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"*\u5149\uff0866\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"Estel(100\uffe5)"),(0,a.kt)("li",{parentName:"ol"},"1\uff08200\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"**\u9633\uff08100\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"chenqiang\uff086.6\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"Azure\uff0850\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u5e7f\u4e1c-\u5c0f\u767d\uff081.5\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"D*Y\uff0820\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u9ad8\u7aef\u878d\u5408\uff088.88\uffe5\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u5f20*\u4f0a\uff08100\uffe5\uff09")),(0,a.kt)("h3",{id:"\u4e00\u8d77\u559d\u9152"},"\u4e00\u8d77\u559d\u9152\uff1f"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"\u6253\u8d4f\u652f\u4ed8.png",src:r(5197).Z,width:"850",height:"630"})))}k.isMDXComponent=!0},5197:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/donate-1-bc856a7a46e2b61db3ff9356d8210962.png"}}]);
\ No newline at end of file
此差异已折叠。
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[230],{2776:s=>{s.exports=JSON.parse('{"name":"@easyops-cn/docusaurus-search-local","id":"default"}')}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[969],{2776:s=>{s.exports=JSON.parse('{"name":"@easyops-cn/docusaurus-search-local","id":"default"}')}}]);
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。