提交 7a439dd0 编写于 作者: 若汝棋茗

更新文档

上级 e7474631
......@@ -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.24cd5811.css">
<link rel="preload" href="/touchsocket/assets/js/runtime~main.5790a8fb.js" as="script">
<link rel="preload" href="/touchsocket/assets/js/main.5a77a930.js" as="script">
<link rel="preload" href="/touchsocket/assets/js/runtime~main.7062fd2f.js" as="script">
<link rel="preload" href="/touchsocket/assets/js/main.0cc14862.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.5790a8fb.js"></script>
<script src="/touchsocket/assets/js/main.5a77a930.js"></script>
<script src="/touchsocket/assets/js/runtime~main.7062fd2f.js"></script>
<script src="/touchsocket/assets/js/main.0cc14862.js"></script>
</body>
</html>
\ No newline at end of file
此差异已折叠。
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[7162],{3905:(e,t,n)=>{n.d(t,{Zo:()=>k,kt:()=>d});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 a(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 i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(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={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},k=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,k=l(e,["components","mdxType","originalType","parentName"]),s=c(n),d=o,m=s["".concat(p,".").concat(d)]||s[d]||u[d]||a;return n?r.createElement(m,i(i({ref:t},k),{},{components:n})):r.createElement(m,i({ref:t},k))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=s;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var c=2;c<a;c++)i[c]=n[c];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}s.displayName="MDXCreateElement"},2878:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var r=n(7462),o=(n(7294),n(3905));const a={id:"rpcoption",title:"\u8c03\u7528\u914d\u7f6e"},i=void 0,l={unversionedId:"rpcoption",id:"rpcoption",title:"\u8c03\u7528\u914d\u7f6e",description:"\u4e00\u3001\u8c03\u7528\u53cd\u9988\u7c7b\u578b",source:"@site/docs/rpcoption.mdx",sourceDirName:".",slug:"/rpcoption",permalink:"/touchsocket/docs/rpcoption",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/rpcoption.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675691081,formattedLastUpdatedAt:"Feb 6, 2023",frontMatter:{id:"rpcoption",title:"\u8c03\u7528\u914d\u7f6e"},sidebar:"docs",previous:{title:"Rpc\u5927\u6570\u636e\u6d41\u5f0f\u4f20\u8f93",permalink:"/touchsocket/docs/rpcstream"},next:{title:"\u5e8f\u5217\u5316\u9009\u62e9\u5668",permalink:"/touchsocket/docs/serializationselector"}},p={},c=[{value:"\u4e00\u3001\u8c03\u7528\u53cd\u9988\u7c7b\u578b",id:"\u4e00\u8c03\u7528\u53cd\u9988\u7c7b\u578b",level:2},{value:"1.1 \u4f7f\u7528",id:"11-\u4f7f\u7528",level:3},{value:"\u4e8c\u3001\u8c03\u7528\u8d85\u65f6\u8bbe\u7f6e",id:"\u4e8c\u8c03\u7528\u8d85\u65f6\u8bbe\u7f6e",level:2},{value:"2.1 \u8ba1\u65f6\u5668\u8bbe\u7f6e",id:"21-\u8ba1\u65f6\u5668\u8bbe\u7f6e",level:3},{value:"2.2 \u4efb\u52a1\u53d6\u6d88",id:"22-\u4efb\u52a1\u53d6\u6d88",level:3},{value:"2.3 \u670d\u52a1\u4efb\u52a1\u53d6\u6d88",id:"23-\u670d\u52a1\u4efb\u52a1\u53d6\u6d88",level:3}],k={toc:c};function u(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},k,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u8c03\u7528\u53cd\u9988\u7c7b\u578b"},"\u4e00\u3001\u8c03\u7528\u53cd\u9988\u7c7b\u578b"),(0,o.kt)("p",null,"RPC\u5728\u8c03\u7528\u65f6\uff0c\u7684\u8c03\u7528\u72b6\u6001\u6709\u4e09\u79cd\u72b6\u6001\u53ef\u9009\uff0c\u5206\u522b\u4e3a\uff1a",(0,o.kt)("inlineCode",{parentName:"p"},"OnlySend"),"\u3001",(0,o.kt)("inlineCode",{parentName:"p"},"WaitSend"),"\u3001",(0,o.kt)("inlineCode",{parentName:"p"},"WaitInvoke"),"\u3002\u533a\u522b\u662f\uff1a"),(0,o.kt)("table",null,(0,o.kt)("thead",{parentName:"table"},(0,o.kt)("tr",{parentName:"thead"},(0,o.kt)("th",{parentName:"tr",align:null},"OnlySend"),(0,o.kt)("th",{parentName:"tr",align:null},"WaitSend"),(0,o.kt)("th",{parentName:"tr",align:null},"WaitInvoke"))),(0,o.kt)("tbody",{parentName:"table"},(0,o.kt)("tr",{parentName:"tbody"},(0,o.kt)("td",{parentName:"tr",align:null},"\u4ec5\u53d1\u9001RPC\u8bf7\u6c42\uff0c\u5728TCP\u5e95\u5c42\u534f\u8bae\u4e0b\uff0c\u80fd\u4fdd\u8bc1\u53d1\u9001\u6210\u529f\uff0c\u4f46\u662f\u4e0d\u53cd\u9988\u670d\u52a1\u5668",(0,o.kt)("strong",{parentName:"td"},"\u4efb\u4f55\u72b6\u6001"),"\uff0c\u4e5f\u4e0d\u4f1a\u53d6\u5f97",(0,o.kt)("strong",{parentName:"td"},"\u8fd4\u56de\u503c"),"\u3001",(0,o.kt)("strong",{parentName:"td"},"\u5f02\u5e38"),"\u7b49\u4fe1\u606f\u3002\u5728UDP\u5e95\u5c42\u534f\u8bae\u4e0b\uff0c\u4e0d\u4fdd\u8bc1\u53d1\u9001\u6210\u529f\uff0c\u4ec5\u4ec5\u662f\u5177\u6709\u8bf7\u6c42\u52a8\u4f5c\u800c\u5df2\u3002"),(0,o.kt)("td",{parentName:"tr",align:null},"\u53d1\u9001RPC\u8bf7\u6c42\uff0c\u5e76\u4e14\u7b49\u5f85\u6536\u5230\u72b6\u6001\u8fd4\u56de\uff0c\u80fd\u4fdd\u8bc1RPC\u8bf7\u6c42\u987a\u5229\u5230\u8fbe\u670d\u52a1\uff0c\u4f46\u662f\u4e0d\u80fd\u5f97\u77e5RPC\u670d\u52a1\u662f\u5426\u6210\u529f\u6267\u884c\uff0c\u4e5f\u4e0d\u4f1a\u53d6\u5f97",(0,o.kt)("strong",{parentName:"td"},"\u8fd4\u56de\u503c"),"\u3001",(0,o.kt)("strong",{parentName:"td"},"\u5f02\u5e38"),"\u7b49\u4fe1\u606f"),(0,o.kt)("td",{parentName:"tr",align:null},"\u53d1\u9001RPC\u8bf7\u6c42\uff0c\u4e14\u8fd4\u56de\u6240\u6709\u4fe1\u606f\uff0c\u5305\u62ec\u662f\u5426\u6210\u529f\u8c03\u7528\uff0c\u6267\u884c\u540e\u7684",(0,o.kt)("strong",{parentName:"td"},"\u8fd4\u56de\u503c"),"\u6216",(0,o.kt)("strong",{parentName:"td"},"\u5f02\u5e38"),"\u7b49\u4fe1\u606f\u3002")))),(0,o.kt)("h3",{id:"11-\u4f7f\u7528"},"1.1 \u4f7f\u7528"),(0,o.kt)("p",null,"\u540c\u6837\u7684\uff0c\u5728InvokeOption\u4e2d\u53ef\u4ee5\u76f4\u63a5\u8d4b\u503c\u4f7f\u7528\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'InvokeOption invokeOption = new InvokeOption();\ninvokeOption.FeedbackType = FeedbackType.WaitInvoke;\n//invokeOption.FeedbackType = FeedbackType.OnlySend;\n//invokeOption.FeedbackType = FeedbackType.WaitSend;\nstring returnString = client.Invoke<string>("TestOne", invokeOption, "10");\n')),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},(0,o.kt)("em",{parentName:"strong"},"\u6ce8\u610f\uff1a\u5047\u5982IInvokeOption\u4f7f\u7528\u7684\u662fInvokeOption\u7684\u8bdd\uff0c\u5728new\u7684\u65f6\u5019\uff0c\u5e94\u8be5\u5bf9\u5176\u4ed6\u53c2\u6570\u4e5f\u8fdb\u884c\u8bbe\u7f6e\uff08\u56e0\u4e3a\u5b83\u662f\u7ed3\u6784\u4f53\uff09\u3002"))),(0,o.kt)("h2",{id:"\u4e8c\u8c03\u7528\u8d85\u65f6\u8bbe\u7f6e"},"\u4e8c\u3001\u8c03\u7528\u8d85\u65f6\u8bbe\u7f6e"),(0,o.kt)("p",null,"\u8c03\u7528RPC\uff0c\u4e0d\u80fd\u65e0\u9650\u5236\u7b49\u5f85\uff0c\u5fc5\u987b\u8981\u6709\u8ba1\u65f6\u5668\uff0c\u6216\u8005\u4efb\u52a1\u53d6\u6d88\u7684\u529f\u80fd\u3002 ",(0,o.kt)("a",{name:"bt54x"})),(0,o.kt)("h3",{id:"21-\u8ba1\u65f6\u5668\u8bbe\u7f6e"},"2.1 \u8ba1\u65f6\u5668\u8bbe\u7f6e"),(0,o.kt)("p",null,"\u76f4\u63a5\u5bf9",(0,o.kt)("inlineCode",{parentName:"p"},"InvokeOption"),"\u7684",(0,o.kt)("inlineCode",{parentName:"p"},"Timeout")," \u5c5e\u6027\u8d4b\u503c\u5373\u53ef\uff0c\u5355\u4f4d\u4e3a",(0,o.kt)("inlineCode",{parentName:"p"},"\u6beb\u79d2"),"\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'InvokeOption invokeOption = new InvokeOption();\ninvokeOption.Timeout = 1000 * 10;//10\u79d2\u540e\u65e0\u53cd\u5e94\uff0c\u5219\u629b\u51faRRQMTimeoutException\u5f02\u5e38\nstring returnString = client.Invoke<string>("TestOne", invokeOption, "10");\n')),(0,o.kt)("h3",{id:"22-\u4efb\u52a1\u53d6\u6d88"},"2.2 \u4efb\u52a1\u53d6\u6d88"),(0,o.kt)("p",null,"\u5728RPC\u8c03\u7528\u65f6\uff0c\u8ba1\u65f6\u5668\u662f\u4e00\u4e2a\u597d\u7684\u9009\u62e9\uff0c\u4f46\u662f\u8fd8\u4e0d\u591f\u5b8c\u7f8e\uff0c\u6709\u65f6\u5019\u6211\u4eec\u5e0c\u671b\u80fd\u624b\u52a8\u7ec8\u7ed3\u67d0\u4e2a\u8c03\u7528\u4efb\u52a1\u3002\u8fd9\u65f6\u5019\uff0c\u8ba1\u65f6\u5668\u5c31\u4e0d\u582a\u91cd\u4efb\uff0c\u9700\u8981\u80fd\u4e3b\u52a8\u53d6\u6d88\u4efb\u52a1\u7684\u529f\u80fd\u3002\u719f\u6089.net\u7684\u5c0f\u4f19\u4f34\u90fd\u77e5\u9053\uff0cCancellationToken\u662f\u5177\u5907\u8fd9\u4e2a\u529f\u80fd\u7684\u3002\u540c\u6837\u7684\uff0c\u53ea\u9700\u8981\u5bf9",(0,o.kt)("inlineCode",{parentName:"p"},"InvokeOption"),"\u7684",(0,o.kt)("inlineCode",{parentName:"p"},"CancellationToken")," \u8d4b\u503c\u5373\u53ef\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'InvokeOption invokeOption = new InvokeOption();\nCancellationTokenSource tokenSource = new CancellationTokenSource();\ninvokeOption.CancellationToken = tokenSource.Token;\n//tokenSource.Cancel();//\u8c03\u7528\u65f6\u53d6\u6d88\u4efb\u52a1\nstring returnString = client.Invoke<string>("TestOne", invokeOption, "10");\n')),(0,o.kt)("h3",{id:"23-\u670d\u52a1\u4efb\u52a1\u53d6\u6d88"},"2.3 \u670d\u52a1\u4efb\u52a1\u53d6\u6d88"),(0,o.kt)("p",null,"\u5b9e\u9645\u4e0a7.2\u7684\u53d6\u6d88\u4efb\u52a1\uff0c\u4ec5\u4ec5\u80fd\u5b9e\u73b0\u8ba9\u5ba2\u6237\u7aef\u53d6\u6d88\u8bf7\u6c42\uff0c\u4f46\u662f\u670d\u52a1\u5668\u5e76\u4e0d\u77e5\u9053\uff0c\u5982\u679c\u60f3\u8ba9\u670d\u52a1\u5668\u4e5f\u611f\u77e5\u4efb\u52a1\u6d88\u606f\uff0c\u5c31\u5fc5\u987b\u4f9d\u6258\u4e8e\u8c03\u7528\u4e0a\u4e0b\u6587\u3002"),(0,o.kt)("p",null,"\u6b64\u5904\u7684\u53d6\u6d88\uff0c\u6709\u53ef\u80fd\u662f\u8c03\u7528\u8005\u4e3b\u52a8\u53d6\u6d88\u3002\u4e5f\u6709\u53ef\u80fd\u662f\u8c03\u7528\u8005\u5df2\u7ecf\u6389\u7ebf\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'public class ElapsedTimeRpcServer : ServerProvider\n{\n [Description("\u6d4b\u8bd5\u53ef\u53d6\u6d88\u7684\u8c03\u7528")]\n [RRQMRPC(MethodFlags.IncludeCallContext)]\n public bool DelayInvoke(ICallContext serverCallContext,int tick)//\u540c\u6b65\u670d\u52a1\n {\n for (int i = 0; i < tick; i++)\n {\n Thread.Sleep(100);\n if (serverCallContext.TokenSource.IsCancellationRequested)\n {\n Console.WriteLine("\u5ba2\u6237\u7aef\u5df2\u7ecf\u53d6\u6d88\u8be5\u4efb\u52a1\uff01");\n return false;//\u5b9e\u9645\u4e0a\u5728\u53d6\u6d88\u65f6\uff0c\u5ba2\u6237\u7aef\u5f97\u4e0d\u5230\u8be5\u503c\n }\n }\n return true;\n }\n}\n')))}u.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[9171],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});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 l(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 a(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):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)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,c=e.originalType,i=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),d=p(n),f=o,m=d["".concat(i,".").concat(f)]||d[f]||u[f]||c;return n?r.createElement(m,l(l({ref:t},s),{},{components:n})):r.createElement(m,l({ref:t},s))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=n.length,l=new Array(c);l[0]=d;var a={};for(var i in t)hasOwnProperty.call(t,i)&&(a[i]=t[i]);a.originalType=e,a.mdxType="string"==typeof e?e:o,l[1]=a;for(var p=2;p<c;p++)l[p]=n[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"},6807:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>u,frontMatter:()=>c,metadata:()=>a,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const c={id:"rpcallcontext",title:"\u8c03\u7528\u4e0a\u4e0b\u6587"},l=void 0,a={unversionedId:"rpcallcontext",id:"rpcallcontext",title:"\u8c03\u7528\u4e0a\u4e0b\u6587",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/rpcallcontext.mdx",sourceDirName:".",slug:"/rpcallcontext",permalink:"/touchsocket/docs/rpcallcontext",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/rpcallcontext.mdx",tags:[],version:"current",frontMatter:{id:"rpcallcontext",title:"\u8c03\u7528\u4e0a\u4e0b\u6587"},sidebar:"docs",previous:{title:"\u5e8f\u5217\u5316\u9009\u62e9\u5668",permalink:"/touchsocket/docs/serializationselector"},next:{title:"Rpc\u670d\u52a1AOP",permalink:"/touchsocket/docs/rpcactionfilter"}},i={},p=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u901a\u8fc7\u6807\u7b7e\u53c2\u6570\u83b7\u53d6",id:"\u4e8c\u901a\u8fc7\u6807\u7b7e\u53c2\u6570\u83b7\u53d6",level:2},{value:"\u4e09\u3001\u901a\u8fc7\u77ac\u65f6\u751f\u547d\u5468\u671f\u83b7\u53d6",id:"\u4e09\u901a\u8fc7\u77ac\u65f6\u751f\u547d\u5468\u671f\u83b7\u53d6",level:2}],s={toc:p};function u(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"RPC\u670d\u52a1\u662f\u65e0\u72b6\u6001\u7684\uff0c\u5373\u53ea\u77e5\u9053\u5f53\u524d\u670d\u52a1\u88ab\u8c03\u7528\uff0c\u4f46\u65e0\u6cd5\u5f97\u77e5\u662f\u88ab\u8c01\u8c03\u7528\uff0c\u8fd9\u4e2a\u95ee\u9898\u7ed9\u65e5\u5fd7\u8bb0\u5f55\u3001RPC\u56de\u8c03\u7b49\u5e26\u6765\u4e86\u5f88\u591a\u9ebb\u70e6\u4e8b\u3002\u4f46\u662f\uff0cTouch\u7684Rpc\u652f\u6301\u8c03\u7528\u4e0a\u4e0b\u6587\u83b7\u53d6\u3002\u5728\u4e0a\u4e0b\u6587\u4e2d\u53ef\u4ee5\u83b7\u5f97\u8c03\u7528\u8005\uff08",(0,o.kt)("inlineCode",{parentName:"p"},"ICaller"),"\uff09\u4fe1\u606f\u7b49\u3002")),(0,o.kt)("h2",{id:"\u4e8c\u901a\u8fc7\u6807\u7b7e\u53c2\u6570\u83b7\u53d6"},"\u4e8c\u3001\u901a\u8fc7\u6807\u7b7e\u53c2\u6570\u83b7\u53d6"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"\u6b65\u9aa4\uff1a")),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Rpc\u6807\u7b7e\u9700\u8981\u4f20\u5165",(0,o.kt)("inlineCode",{parentName:"li"},"MethodFlags.IncludeCallContext"),"\u53c2\u6570\u3002"),(0,o.kt)("li",{parentName:"ol"},"\u5b9a\u4e49\u7684\u670d\u52a1\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u5fc5\u987b\u662f",(0,o.kt)("inlineCode",{parentName:"li"},"ICallContext"),"\u6216\u5176\u6d3e\u751f\u7c7b\u3002"),(0,o.kt)("li",{parentName:"ol"},"\u6700\u540e\u83b7\u5f97\u5176Caller\u5c5e\u6027\u5373\u53ef\u5f97\u5230\u8c03\u7528\u8005\u3002")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyRpcServer : RpcServer\n{\n [Description("\u767b\u5f55")]\n [TouchRpc(MethodFlags = MethodFlags.IncludeCallContext)]//\u4f7f\u7528\u8c03\u7528\u4e0a\u624d\u6587\n public bool Login(ICallContext callContext,string account,string password)\n {\n if (callContext.Caller is TcpTouchRpcSocketClient)\n {\n Console.WriteLine("TcpTouchRpc\u8bf7\u6c42");\n }\n if (account=="123"&&password=="abc")\n {\n return true;\n }\n\n return false;\n }\n}\n')),(0,o.kt)("h2",{id:"\u4e09\u901a\u8fc7\u77ac\u65f6\u751f\u547d\u5468\u671f\u83b7\u53d6"},"\u4e09\u3001\u901a\u8fc7\u77ac\u65f6\u751f\u547d\u5468\u671f\u83b7\u53d6"),(0,o.kt)("p",null,"\u6b65\u9aa4\uff1a"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"\u7ee7\u627fTransientRpcServer\u6216\u8005\u5b9e\u73b0ITransientRpcServer\u63a5\u53e3\u3002")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyRpcServer : TransientRpcServer\n{\n [Description("\u767b\u5f55")]\n [TouchRpc]\n public bool Login(string account,string password)\n {\n if ( this.CallContext.Caller is TcpTouchRpcSocketClient)\n {\n Console.WriteLine("TcpTouchRpc\u8bf7\u6c42");\n }\n if (account=="123"&&password=="abc")\n {\n return true;\n }\n\n return false;\n }\n}\n')))}u.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[1168],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>k});var a=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 i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(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,a,r=function(e,t){if(null==e)return{};var n,a,r={},i=Object.keys(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var p=a.createContext({}),c=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=c(e.components);return a.createElement(p.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=c(n),k=r,d=u["".concat(p,".").concat(k)]||u[k]||m[k]||i;return n?a.createElement(d,o(o({ref:t},s),{},{components:n})):a.createElement(d,o({ref:t},s))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=u;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l.mdxType="string"==typeof e?e:r,o[1]=l;for(var c=2;c<i;c++)o[c]=n[c];return a.createElement.apply(null,o)}return a.createElement.apply(null,n)}u.displayName="MDXCreateElement"},2673:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var a=n(7462),r=(n(7294),n(3905));const i={id:"serializationselector",title:"\u5e8f\u5217\u5316\u9009\u62e9\u5668"},o=void 0,l={unversionedId:"serializationselector",id:"serializationselector",title:"\u5e8f\u5217\u5316\u9009\u62e9\u5668",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/serializationselector.mdx",sourceDirName:".",slug:"/serializationselector",permalink:"/touchsocket/docs/serializationselector",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/serializationselector.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675691081,formattedLastUpdatedAt:"Feb 6, 2023",frontMatter:{id:"serializationselector",title:"\u5e8f\u5217\u5316\u9009\u62e9\u5668"},sidebar:"docs",previous:{title:"\u8c03\u7528\u914d\u7f6e",permalink:"/touchsocket/docs/rpcoption"},next:{title:"\u8c03\u7528\u4e0a\u4e0b\u6587",permalink:"/touchsocket/docs/rpcallcontext"}},p={},c=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u652f\u6301\u7684\u5e8f\u5217\u5316",id:"\u4e8c\u652f\u6301\u7684\u5e8f\u5217\u5316",level:2},{value:"\u4e09\u3001\u4f7f\u7528\u9884\u8bbe\u5e8f\u5217\u5316",id:"\u4e09\u4f7f\u7528\u9884\u8bbe\u5e8f\u5217\u5316",level:2},{value:"\u56db\u3001\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316",id:"\u56db\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316",level:2},{value:"4.1 \u5b9a\u4e49\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\u5668",id:"41-\u5b9a\u4e49\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\u5668",level:3},{value:"4.2 \u4f7f\u7528",id:"42-\u4f7f\u7528",level:3}],s={toc:c};function m(e){let{components:t,...i}=e;return(0,r.kt)("wrapper",(0,a.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,r.kt)("p",null,"\u4ece\u4e0b\u56fe\uff08\u56fe\u7247\u6765\u6e90",(0,r.kt)("a",{parentName:"p",href:"https://www.jianshu.com/p/7d6853140e13"},"\u7f51\u7edc"),"\uff09\u53ef\u4ee5\u770b\u51fa\uff0c\u5e8f\u5217\u5316\u662fRPC\u4e2d\u81f3\u5173\u91cd\u8981\u7684\u4e00\u4e2a\u73af\u8282\uff0c\u53ef\u4ee5\u8bf4\uff0c\u5e8f\u5217\u5316\u7684\u4f18\u52a3\uff0c\u4f1a\u5f88\u5927\u7a0b\u5ea6\u7684\u5f71\u54cdRPC\u8c03\u7528\u6027\u80fd\u3002"),(0,r.kt)("img",{src:n(4831).Z}),(0,r.kt)("h2",{id:"\u4e8c\u652f\u6301\u7684\u5e8f\u5217\u5316"},"\u4e8c\u3001\u652f\u6301\u7684\u5e8f\u5217\u5316"),(0,r.kt)("p",null,"\u5728TouchRpc\u4e2d\uff0c\u5185\u7f6e\u4e86\u56db\u79cd\u5e8f\u5217\u5316\u65b9\u5f0f\uff0c\u5206\u522b\u4e3a",(0,r.kt)("inlineCode",{parentName:"p"},"FastBinary"),"\u3001",(0,r.kt)("inlineCode",{parentName:"p"},"Json"),"\u3001",(0,r.kt)("inlineCode",{parentName:"p"},"Xml"),"\u3001",(0,r.kt)("inlineCode",{parentName:"p"},"SystemBinary"),"\u3002\u8fd9\u56db\u79cd\u65b9\u5f0f\u7684\u7279\u70b9\uff0c\u5c31\u662f\u5176\u5e8f\u5217\u5316\u7684\u7279\u70b9\u3002"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null}),(0,r.kt)("th",{parentName:"tr",align:null},"FastBinary"),(0,r.kt)("th",{parentName:"tr",align:null},"Json"),(0,r.kt)("th",{parentName:"tr",align:null},"Xml"),(0,r.kt)("th",{parentName:"tr",align:null},"SystemBinary"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"\u7279\u70b9"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5e8f\u5217\u5316\u65b9\u5f0f\u901f\u5ea6\u5feb\uff0c\u6570\u636e\u91cf\u5c0f\uff0c\u4f46\u662f\u517c\u5bb9\u7684\u6570\u636e\u683c\u5f0f\u4e5f\u6bd4\u8f83\u6709\u9650\u3002\u4ec5\u652f\u6301\u57fa\u7840\u7c7b\u578b\u3001\u81ea\u5b9a\u4e49\u5b9e\u4f53\u7c7b\u3001\u6570\u7ec4\u3001List\u3001\u5b57\u5178"),(0,r.kt)("td",{parentName:"tr",align:null},"\u517c\u5bb9\u6027\u597d\uff0c\u53ef\u8bfb\u6027\u5f3a\uff0c\u4f46\u662f\u53d7\u5b57\u7b26\u4e32\u5f71\u54cd\uff0c\u6027\u80fd\u4e0d\u51fa\u4f17\uff0c\u4e14\u6570\u636e\u91cf\u53d7\u9650\u5236"),(0,r.kt)("td",{parentName:"tr",align:null},"\u517c\u5bb9\u6027\u4e00\u822c\uff0c\u53ef\u8bfb\u6027\u5f3a\uff0c\u540c\u6837\u53d7\u5b57\u7b26\u4e32\u5f71\u54cd\uff0c\u6027\u80fd\u4e0d\u51fa\u4f17\uff0c\u4e14\u6570\u636e\u91cf\u53d7\u9650\u5236"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5e8f\u5217\u5316\u901f\u5ea6\u5feb\u3002\u4f46\u662f\u517c\u5bb9\u6027\u4f4e\u3002\u4e14\u8981\u6c42\u7c7b\u5fc5\u987b\u4e00\u81f4\uff0c\u4e0d\u7136\u9700\u8981\u91cd\u65b0\u6307\u5b9a\u56fe\u6839\u3002")))),(0,r.kt)("h2",{id:"\u4e09\u4f7f\u7528\u9884\u8bbe\u5e8f\u5217\u5316"},"\u4e09\u3001\u4f7f\u7528\u9884\u8bbe\u5e8f\u5217\u5316"),(0,r.kt)("p",null,"\u5728TouchRpc\u4e2d\uff0c\u9009\u62e9\u5e8f\u5217\u5316\u662f\u975e\u5e38\u7b80\u5355\u7684\uff0c\u4e14\u5e8f\u5217\u5316\u65b9\u5f0f\u5b8c\u5168\u7531",(0,r.kt)("inlineCode",{parentName:"p"},"\u8c03\u7528\u7aef"),"\u51b3\u5b9a\u3002\n\u5728\u5b9e\u9645\u7684\u8c03\u7528\u4e2d\uff0c\u901a\u8fc7",(0,r.kt)("inlineCode",{parentName:"p"},"InvokeOption"),"\u7684\u53c2\u6570\u6307\u5b9a\u3002"),(0,r.kt)("p",null,"\u5b9e\u9645\u4e0a\uff0c\u53ea\u9700\u8981\u4f20\u5165\u76f8\u5173\u53c2\u6570\u5373\u53ef\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'InvokeOption invokeOption = new InvokeOption() //InvokeOption\u662f\u7ed3\u6784\u4f53\uff0c\u6240\u4ee5\u6210\u5458\u5fc5\u987b\u5168\u90e8\u521d\u59cb\u5316\u3002\n{\n FeedbackType = FeedbackType.WaitInvoke,\n Timeout = 1000 * 10\n};\n;\ninvokeOption.SerializationType = SerializationType.FastBinary;\n//invokeOption.SerializationType = Serialization.SerializationType.Json;\n//invokeOption.SerializationType = Serialization.SerializationType.Xml;\nstring returnString = client.Invoke<string>("TestOne", invokeOption, "10");\n')),(0,r.kt)("h2",{id:"\u56db\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316"},"\u56db\u3001\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316"),(0,r.kt)("h3",{id:"41-\u5b9a\u4e49\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\u5668"},"4.1 \u5b9a\u4e49\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\u5668"),(0,r.kt)("p",null,"\u60f3\u8981\u5b9e\u73b0\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\uff0c\u5fc5\u987b\u901a\u8fc7\u91cd\u5199\u5e8f\u5217\u5316\u9009\u62e9\u5668\uff0c\u5b9e\u73b0",(0,r.kt)("inlineCode",{parentName:"p"},"SerializeParameter"),"\u548c",(0,r.kt)("inlineCode",{parentName:"p"},"DeserializeParameter"),"\u51fd\u6570\u3002"),(0,r.kt)("p",null,"\u4e0b\u5217\u4ee3\u7801\u5c06\u4ee5",(0,r.kt)("inlineCode",{parentName:"p"},"MemoryPack"),"\u5e8f\u5217\u5316\u4f5c\u4e3a\u793a\u4f8b\uff0c\u5e76\u4e14\u4fdd\u7559\u4e86\u9884\u8bbe\u5e8f\u5217\u5316\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"public class MemoryPackSerializationSelector:DefaultSerializationSelector\n{\n public override byte[] SerializeParameter(SerializationType serializationType, object parameter)\n {\n if ((byte)serializationType == 4)\n {\n return MemoryPackSerializer.Serialize(parameter.GetType(),parameter);\n }\n return base.SerializeParameter(serializationType, parameter);\n }\n\n public override object DeserializeParameter(SerializationType serializationType, byte[] parameterBytes, Type parameterType)\n {\n if ((byte)serializationType == 4)\n {\n if (parameterBytes==null)\n {\n return default;\n }\n return MemoryPackSerializer.Deserialize(parameterType,parameterBytes);\n }\n return base.DeserializeParameter(serializationType, parameterBytes, parameterType);\n }\n}\n")),(0,r.kt)("h3",{id:"42-\u4f7f\u7528"},"4.2 \u4f7f\u7528"),(0,r.kt)("p",null,"\u5fc5\u987b\u5728",(0,r.kt)("inlineCode",{parentName:"p"},"\u670d\u52a1\u5668"),"\u548c",(0,r.kt)("inlineCode",{parentName:"p"},"\u5ba2\u6237\u7aef"),"\u7684",(0,r.kt)("strong",{parentName:"p"},"Config\u914d\u7f6e"),"\u4e2d\u8bbe\u7f6e\u89e3\u6790\u5668\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"var config = new TouchSocketConfig()//\u914d\u7f6e\n .SetSerializationSelector(new MemoryPackSerializationSelector());\n")),(0,r.kt)("p",null,"\u7136\u540e\uff0c\u56e0\u4e3a\u8d4b\u503c\u65f6\u662f",(0,r.kt)("inlineCode",{parentName:"p"},"SerializationType"),"\u7684\u679a\u4e3e\u7c7b\u578b\uff0c\u6240\u4ee5\u6267\u884c\u5f3a\u5236\u7c7b\u578b\u8f6c\u6362\u5373\u53ef\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'InvokeOption invokeOption = new InvokeOption()\n{\n FeedbackType = FeedbackType.WaitInvoke,\n SerializationType = (SerializationType)4,\n Timeout = 1000 * 10\n};\n\nvar msg = client.Login(new LoginModel() { Account = "Account", Password = "Password" }, invokeOption);\n')),(0,r.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u56e0\u4e3a\u4f7f\u7528\u7684\u662f",(0,r.kt)("inlineCode",{parentName:"p"},"MemoryPack"),"\u5e8f\u5217\u5316\uff0c\u6240\u4ee5\u6700\u597d\u5c06Rpc\u7684\u6240\u6709\u53c2\u6570\u58f0\u660e\u5728\u5355\u72ec\u7684\u7a0b\u5e8f\u96c6\u4e2d\u3002\u8fd9\u6837\u5ba2\u6237\u7aef\u4e0e\u670d\u52a1\u5668\u9879\u76ee\u90fd\u53ef\u4ee5\u76f4\u63a5\u5f15\u7528\u3002")),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://gitee.com/RRQM_Home/TouchSocket/tree/master/examples/TouchRpc%E7%AE%80%E5%8D%95%E7%A4%BA%E4%BE%8B/%E5%BA%8F%E5%88%97%E5%8C%96%E9%80%89%E6%8B%A9%E5%99%A8"},"\u5e8f\u5217\u5316\u9009\u62e9\u5668\u793a\u4f8b\u4ee3\u7801")))}m.isMDXComponent=!0},4831:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/serializationselector-1-68b78a140237e0d5c54a0e445674a61c.png"}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[1168],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>k});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 i(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 o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(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,a=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=c(n),k=a,d=u["".concat(p,".").concat(k)]||u[k]||m[k]||i;return n?r.createElement(d,o(o({ref:t},s),{},{components:n})):r.createElement(d,o({ref:t},s))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=u;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,o[1]=l;for(var c=2;c<i;c++)o[c]=n[c];return r.createElement.apply(null,o)}return r.createElement.apply(null,n)}u.displayName="MDXCreateElement"},2673:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const i={id:"serializationselector",title:"\u5e8f\u5217\u5316\u9009\u62e9\u5668"},o=void 0,l={unversionedId:"serializationselector",id:"serializationselector",title:"\u5e8f\u5217\u5316\u9009\u62e9\u5668",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/serializationselector.mdx",sourceDirName:".",slug:"/serializationselector",permalink:"/touchsocket/docs/serializationselector",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/serializationselector.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675690367,formattedLastUpdatedAt:"Feb 6, 2023",frontMatter:{id:"serializationselector",title:"\u5e8f\u5217\u5316\u9009\u62e9\u5668"},sidebar:"docs",previous:{title:"\u8c03\u7528\u914d\u7f6e",permalink:"/touchsocket/docs/rpcoption"},next:{title:"\u751f\u6210\u3001\u83b7\u53d6\u4ee3\u7406",permalink:"/touchsocket/docs/generateproxy"}},p={},c=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u652f\u6301\u7684\u5e8f\u5217\u5316",id:"\u4e8c\u652f\u6301\u7684\u5e8f\u5217\u5316",level:2},{value:"\u4e09\u3001\u4f7f\u7528\u9884\u8bbe\u5e8f\u5217\u5316",id:"\u4e09\u4f7f\u7528\u9884\u8bbe\u5e8f\u5217\u5316",level:2},{value:"\u56db\u3001\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316",id:"\u56db\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316",level:2},{value:"4.1 \u5b9a\u4e49\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\u5668",id:"41-\u5b9a\u4e49\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\u5668",level:3},{value:"4.2 \u4f7f\u7528",id:"42-\u4f7f\u7528",level:3}],s={toc:c};function m(e){let{components:t,...i}=e;return(0,a.kt)("wrapper",(0,r.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,a.kt)("p",null,"\u4ece\u4e0b\u56fe\uff08\u56fe\u7247\u6765\u6e90",(0,a.kt)("a",{parentName:"p",href:"https://www.jianshu.com/p/7d6853140e13"},"\u7f51\u7edc"),"\uff09\u53ef\u4ee5\u770b\u51fa\uff0c\u5e8f\u5217\u5316\u662fRPC\u4e2d\u81f3\u5173\u91cd\u8981\u7684\u4e00\u4e2a\u73af\u8282\uff0c\u53ef\u4ee5\u8bf4\uff0c\u5e8f\u5217\u5316\u7684\u4f18\u52a3\uff0c\u4f1a\u5f88\u5927\u7a0b\u5ea6\u7684\u5f71\u54cdRPC\u8c03\u7528\u6027\u80fd\u3002"),(0,a.kt)("img",{src:n(4831).Z}),(0,a.kt)("h2",{id:"\u4e8c\u652f\u6301\u7684\u5e8f\u5217\u5316"},"\u4e8c\u3001\u652f\u6301\u7684\u5e8f\u5217\u5316"),(0,a.kt)("p",null,"\u5728TouchRpc\u4e2d\uff0c\u5185\u7f6e\u4e86\u56db\u79cd\u5e8f\u5217\u5316\u65b9\u5f0f\uff0c\u5206\u522b\u4e3a",(0,a.kt)("inlineCode",{parentName:"p"},"FastBinary"),"\u3001",(0,a.kt)("inlineCode",{parentName:"p"},"Json"),"\u3001",(0,a.kt)("inlineCode",{parentName:"p"},"Xml"),"\u3001",(0,a.kt)("inlineCode",{parentName:"p"},"SystemBinary"),"\u3002\u8fd9\u56db\u79cd\u65b9\u5f0f\u7684\u7279\u70b9\uff0c\u5c31\u662f\u5176\u5e8f\u5217\u5316\u7684\u7279\u70b9\u3002"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null}),(0,a.kt)("th",{parentName:"tr",align:null},"FastBinary"),(0,a.kt)("th",{parentName:"tr",align:null},"Json"),(0,a.kt)("th",{parentName:"tr",align:null},"Xml"),(0,a.kt)("th",{parentName:"tr",align:null},"SystemBinary"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"\u7279\u70b9"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5e8f\u5217\u5316\u65b9\u5f0f\u901f\u5ea6\u5feb\uff0c\u6570\u636e\u91cf\u5c0f\uff0c\u4f46\u662f\u517c\u5bb9\u7684\u6570\u636e\u683c\u5f0f\u4e5f\u6bd4\u8f83\u6709\u9650\u3002\u4ec5\u652f\u6301\u57fa\u7840\u7c7b\u578b\u3001\u81ea\u5b9a\u4e49\u5b9e\u4f53\u7c7b\u3001\u6570\u7ec4\u3001List\u3001\u5b57\u5178"),(0,a.kt)("td",{parentName:"tr",align:null},"\u517c\u5bb9\u6027\u597d\uff0c\u53ef\u8bfb\u6027\u5f3a\uff0c\u4f46\u662f\u53d7\u5b57\u7b26\u4e32\u5f71\u54cd\uff0c\u6027\u80fd\u4e0d\u51fa\u4f17\uff0c\u4e14\u6570\u636e\u91cf\u53d7\u9650\u5236"),(0,a.kt)("td",{parentName:"tr",align:null},"\u517c\u5bb9\u6027\u4e00\u822c\uff0c\u53ef\u8bfb\u6027\u5f3a\uff0c\u540c\u6837\u53d7\u5b57\u7b26\u4e32\u5f71\u54cd\uff0c\u6027\u80fd\u4e0d\u51fa\u4f17\uff0c\u4e14\u6570\u636e\u91cf\u53d7\u9650\u5236"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5e8f\u5217\u5316\u901f\u5ea6\u5feb\u3002\u4f46\u662f\u517c\u5bb9\u6027\u4f4e\u3002\u4e14\u8981\u6c42\u7c7b\u5fc5\u987b\u4e00\u81f4\uff0c\u4e0d\u7136\u9700\u8981\u91cd\u65b0\u6307\u5b9a\u56fe\u6839\u3002")))),(0,a.kt)("h2",{id:"\u4e09\u4f7f\u7528\u9884\u8bbe\u5e8f\u5217\u5316"},"\u4e09\u3001\u4f7f\u7528\u9884\u8bbe\u5e8f\u5217\u5316"),(0,a.kt)("p",null,"\u5728TouchRpc\u4e2d\uff0c\u9009\u62e9\u5e8f\u5217\u5316\u662f\u975e\u5e38\u7b80\u5355\u7684\uff0c\u4e14\u5e8f\u5217\u5316\u65b9\u5f0f\u5b8c\u5168\u7531",(0,a.kt)("inlineCode",{parentName:"p"},"\u8c03\u7528\u7aef"),"\u51b3\u5b9a\u3002\n\u5728\u5b9e\u9645\u7684\u8c03\u7528\u4e2d\uff0c\u901a\u8fc7",(0,a.kt)("inlineCode",{parentName:"p"},"InvokeOption"),"\u7684\u53c2\u6570\u6307\u5b9a\u3002"),(0,a.kt)("p",null,"\u5b9e\u9645\u4e0a\uff0c\u53ea\u9700\u8981\u4f20\u5165\u76f8\u5173\u53c2\u6570\u5373\u53ef\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'InvokeOption invokeOption = new InvokeOption() //InvokeOption\u662f\u7ed3\u6784\u4f53\uff0c\u6240\u4ee5\u6210\u5458\u5fc5\u987b\u5168\u90e8\u521d\u59cb\u5316\u3002\n{\n FeedbackType = FeedbackType.WaitInvoke,\n Timeout = 1000 * 10\n};\n;\ninvokeOption.SerializationType = SerializationType.FastBinary;\n//invokeOption.SerializationType = Serialization.SerializationType.Json;\n//invokeOption.SerializationType = Serialization.SerializationType.Xml;\nstring returnString = client.Invoke<string>("TestOne", invokeOption, "10");\n')),(0,a.kt)("h2",{id:"\u56db\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316"},"\u56db\u3001\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316"),(0,a.kt)("h3",{id:"41-\u5b9a\u4e49\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\u5668"},"4.1 \u5b9a\u4e49\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\u5668"),(0,a.kt)("p",null,"\u60f3\u8981\u5b9e\u73b0\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\uff0c\u5fc5\u987b\u901a\u8fc7\u91cd\u5199\u5e8f\u5217\u5316\u9009\u62e9\u5668\uff0c\u5b9e\u73b0",(0,a.kt)("inlineCode",{parentName:"p"},"SerializeParameter"),"\u548c",(0,a.kt)("inlineCode",{parentName:"p"},"DeserializeParameter"),"\u51fd\u6570\u3002"),(0,a.kt)("p",null,"\u4e0b\u5217\u4ee3\u7801\u5c06\u4ee5",(0,a.kt)("inlineCode",{parentName:"p"},"MemoryPack"),"\u5e8f\u5217\u5316\u4f5c\u4e3a\u793a\u4f8b\uff0c\u5e76\u4e14\u4fdd\u7559\u4e86\u9884\u8bbe\u5e8f\u5217\u5316\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public class MemoryPackSerializationSelector:DefaultSerializationSelector\n{\n public override byte[] SerializeParameter(SerializationType serializationType, object parameter)\n {\n if ((byte)serializationType == 4)\n {\n return MemoryPackSerializer.Serialize(parameter.GetType(),parameter);\n }\n return base.SerializeParameter(serializationType, parameter);\n }\n\n public override object DeserializeParameter(SerializationType serializationType, byte[] parameterBytes, Type parameterType)\n {\n if ((byte)serializationType == 4)\n {\n if (parameterBytes==null)\n {\n return default;\n }\n return MemoryPackSerializer.Deserialize(parameterType,parameterBytes);\n }\n return base.DeserializeParameter(serializationType, parameterBytes, parameterType);\n }\n}\n")),(0,a.kt)("h3",{id:"42-\u4f7f\u7528"},"4.2 \u4f7f\u7528"),(0,a.kt)("p",null,"\u5fc5\u987b\u5728",(0,a.kt)("inlineCode",{parentName:"p"},"\u670d\u52a1\u5668"),"\u548c",(0,a.kt)("inlineCode",{parentName:"p"},"\u5ba2\u6237\u7aef"),"\u7684",(0,a.kt)("strong",{parentName:"p"},"Config\u914d\u7f6e"),"\u4e2d\u8bbe\u7f6e\u89e3\u6790\u5668\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"var config = new TouchSocketConfig()//\u914d\u7f6e\n .SetSerializationSelector(new MemoryPackSerializationSelector());\n")),(0,a.kt)("p",null,"\u7136\u540e\uff0c\u56e0\u4e3a\u8d4b\u503c\u65f6\u662f",(0,a.kt)("inlineCode",{parentName:"p"},"SerializationType"),"\u7684\u679a\u4e3e\u7c7b\u578b\uff0c\u6240\u4ee5\u6267\u884c\u5f3a\u5236\u7c7b\u578b\u8f6c\u6362\u5373\u53ef\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'InvokeOption invokeOption = new InvokeOption()\n{\n FeedbackType = FeedbackType.WaitInvoke,\n SerializationType = (SerializationType)4,\n Timeout = 1000 * 10\n};\n\nvar msg = client.Login(new LoginModel() { Account = "Account", Password = "Password" }, invokeOption);\n')),(0,a.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u56e0\u4e3a\u4f7f\u7528\u7684\u662f",(0,a.kt)("inlineCode",{parentName:"p"},"MemoryPack"),"\u5e8f\u5217\u5316\uff0c\u6240\u4ee5\u6700\u597d\u5c06Rpc\u7684\u6240\u6709\u53c2\u6570\u58f0\u660e\u5728\u5355\u72ec\u7684\u7a0b\u5e8f\u96c6\u4e2d\u3002\u8fd9\u6837\u5ba2\u6237\u7aef\u4e0e\u670d\u52a1\u5668\u9879\u76ee\u90fd\u53ef\u4ee5\u76f4\u63a5\u5f15\u7528\u3002")),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://gitee.com/RRQM_Home/TouchSocket/tree/master/examples/TouchRpc%E7%AE%80%E5%8D%95%E7%A4%BA%E4%BE%8B/%E5%BA%8F%E5%88%97%E5%8C%96%E9%80%89%E6%8B%A9%E5%99%A8"},"\u5e8f\u5217\u5316\u9009\u62e9\u5668\u793a\u4f8b\u4ee3\u7801")))}m.isMDXComponent=!0},4831:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/serializationselector-1-68b78a140237e0d5c54a0e445674a61c.png"}}]);
\ No newline at end of file
此差异已折叠。
此差异已折叠。
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[7586],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>d});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 l(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 a(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):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)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,c=e.originalType,i=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),f=p(n),d=o,m=f["".concat(i,".").concat(d)]||f[d]||u[d]||c;return n?r.createElement(m,l(l({ref:t},s),{},{components:n})):r.createElement(m,l({ref:t},s))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=n.length,l=new Array(c);l[0]=f;var a={};for(var i in t)hasOwnProperty.call(t,i)&&(a[i]=t[i]);a.originalType=e,a.mdxType="string"==typeof e?e:o,l[1]=a;for(var p=2;p<c;p++)l[p]=n[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},7112:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>u,frontMatter:()=>c,metadata:()=>a,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const c={id:"rpcactionfilter",title:"Rpc\u670d\u52a1AOP"},l=void 0,a={unversionedId:"rpcactionfilter",id:"rpcactionfilter",title:"Rpc\u670d\u52a1AOP",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/rpcactionfilter.mdx",sourceDirName:".",slug:"/rpcactionfilter",permalink:"/touchsocket/docs/rpcactionfilter",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/rpcactionfilter.mdx",tags:[],version:"current",frontMatter:{id:"rpcactionfilter",title:"Rpc\u670d\u52a1AOP"},sidebar:"docs",previous:{title:"\u8c03\u7528\u4e0a\u4e0b\u6587",permalink:"/touchsocket/docs/rpcallcontext"},next:{title:"\u751f\u6210\u3001\u83b7\u53d6\u4ee3\u7406",permalink:"/touchsocket/docs/generateproxy"}},i={},p=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u58f0\u660e\u7279\u6027",id:"\u4e8c\u58f0\u660e\u7279\u6027",level:2},{value:"\u4e09\u3001\u4f7f\u7528",id:"\u4e09\u4f7f\u7528",level:2}],s={toc:p};function u(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,o.kt)("p",null,"RPC\u670d\u52a1\u5728\u88ab\u8c03\u7528\u662f\uff0c\u53ef\u4ee5\u4f7f\u7528\u5b9e\u73b0",(0,o.kt)("strong",{parentName:"p"},"IRpcActionFilter"),"\u7684",(0,o.kt)("strong",{parentName:"p"},"\u7279\u6027\uff08Attribute\uff09"),"\uff0c\u8fdb\u884c\u76f8\u5173AOP\u64cd\u4f5c\u3002"),(0,o.kt)("h2",{id:"\u4e8c\u58f0\u660e\u7279\u6027"},"\u4e8c\u3001\u58f0\u660e\u7279\u6027"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyRpcActionFilterAttribute : RpcActionFilterAttribute\n{\n public override void Executing(ICallContext callContext, object[] parameters, ref InvokeResult invokeResult)\n {\n //invokeResult = new InvokeResult()\n //{\n // Status = InvokeStatus.UnEnable,\n // Message = "\u4e0d\u5141\u8bb8\u6267\u884c",\n // Result = default\n //};\n if (callContext.Caller is TcpTouchRpcSocketClient client)\n {\n client.Logger.Info($"\u5373\u5c06\u6267\u884cRPC-{callContext.MethodInstance.Name}");\n }\n base.Executing(callContext, parameters, ref invokeResult);\n }\n\n public override void Executed(ICallContext callContext, object[] parameters, ref InvokeResult invokeResult)\n {\n if (callContext.Caller is TcpTouchRpcSocketClient client)\n {\n client.Logger.Info($"\u6267\u884cRPC-{callContext.MethodInstance.Name}\u5b8c\u6210\uff0c\u72b6\u6001={invokeResult.Status}");\n }\n base.Executed(callContext, parameters, ref invokeResult);\n }\n\n public override void ExecutException(ICallContext callContext, object[] parameters, ref InvokeResult invokeResult, Exception exception)\n {\n if (callContext.Caller is TcpTouchRpcSocketClient client)\n {\n client.Logger.Info($"\u6267\u884cRPC-{callContext.MethodInstance.Name}\u5f02\u5e38\uff0c\u4fe1\u606f={invokeResult.Message}");\n }\n\n base.ExecutException(callContext, parameters, ref invokeResult, exception);\n }\n}\n')),(0,o.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,o.kt)("p",{parentName:"admonition"},"\u6bcf\u4e2a\u65b9\u6cd5\u90fd\u6709\u8be6\u7ec6\u7684\u6ce8\u91ca\uff0c\u4ed4\u7ec6\u67e5\u770b\u53ef\u80fd\u4f1a\u4e8b\u534a\u529f\u500d\u3002")),(0,o.kt)("h2",{id:"\u4e09\u4f7f\u7528"},"\u4e09\u3001\u4f7f\u7528"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},' [Description("\u6027\u80fd\u6d4b\u8bd5")]\n [TouchRpc]\n [MyRpcActionFilter]\n public int Performance(int a)\n {\n return a;\n }\n')))}u.isMDXComponent=!0}}]);
\ No newline at end of file
"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[1793],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>d});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 a(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 c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(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={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[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):c(c({},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)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),f=p(n),d=o,h=f["".concat(i,".").concat(d)]||f[d]||u[d]||a;return n?r.createElement(h,c(c({ref:t},s),{},{components:n})):r.createElement(h,c({ref:t},s))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,c=new Array(a);c[0]=f;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,c[1]=l;for(var p=2;p<a;p++)c[p]=n[p];return r.createElement.apply(null,c)}return r.createElement.apply(null,n)}f.displayName="MDXCreateElement"},1184:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const a={id:"multithreadingfiletransfer",title:"\u591a\u7ebf\u7a0b\u6587\u4ef6\u4f20\u8f93"},c=void 0,l={unversionedId:"multithreadingfiletransfer",id:"multithreadingfiletransfer",title:"\u591a\u7ebf\u7a0b\u6587\u4ef6\u4f20\u8f93",description:"\u4e00\u3001\u8bf4\u660e\u4ec5\u4f01\u4e1a\u7248",source:"@site/docs/multithreadingfiletransfer.mdx",sourceDirName:".",slug:"/multithreadingfiletransfer",permalink:"/touchsocket/docs/multithreadingfiletransfer",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/multithreadingfiletransfer.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675240162,formattedLastUpdatedAt:"Feb 1, 2023",frontMatter:{id:"multithreadingfiletransfer",title:"\u591a\u7ebf\u7a0b\u6587\u4ef6\u4f20\u8f93"},sidebar:"docs",previous:{title:"\u5c0f\u6587\u4ef6\u4f20\u8f93",permalink:"/touchsocket/docs/smallfiletransfer"},next:{title:"\u8fdc\u7a0b\u6587\u4ef6\u64cd\u4f5c",permalink:"/touchsocket/docs/remotefilecontrol"}},i={},p=[{value:"\u4e00\u3001\u8bf4\u660e\u4ec5\u4f01\u4e1a\u7248",id:"\u4e00\u8bf4\u660e\u4ec5\u4f01\u4e1a\u7248",level:2},{value:"\u4e8c\u3001\u4f7f\u7528",id:"\u4e8c\u4f7f\u7528",level:2},{value:"\u4e09\u3001\u5ba2\u6237\u7aef\u4e4b\u95f4\u4f20\u8f93\u6587\u4ef6",id:"\u4e09\u5ba2\u6237\u7aef\u4e4b\u95f4\u4f20\u8f93\u6587\u4ef6",level:2}],s={toc:p};function u(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("a",{name:"TXjhF"}),(0,o.kt)("h2",{id:"\u4e00\u8bf4\u660e\u4ec5\u4f01\u4e1a\u7248"},"\u4e00\u3001\u8bf4\u660e\u4ec5\u4f01\u4e1a\u7248"),(0,o.kt)("p",null,"\u591a\u7ebf\u7a0b\u6587\u4ef6\u4f20\u8f93\uff0c\u987e\u540d\u601d\u4e49\uff0c\u5c31\u662f\u591a\u4e2a\u8fde\u63a5\u94fe\u8def\uff0c\u5171\u540c\u4f20\u8f93\u4e00\u4e2a\u6587\u4ef6\u3002"),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"\u591a\u7ebf\u7a0b\u4f20\u8f93\u7684\u4f18\u70b9\u662f\u4ec0\u4e48\uff1f\u548c"),(0,o.kt)("a",{parentName:"p",href:"/touchsocket/docs/transferfile"},(0,o.kt)("strong",{parentName:"a"},"\u5e38\u89c4\u6587\u4ef6\u4f20\u8f93")),(0,o.kt)("strong",{parentName:"p"},"\u76f8\u6bd4\uff0c\u573a\u666f\u6709\u54ea\u4e9b\u4e0d\u540c\uff1f"),"\n\u9996\u5148\uff0c",(0,o.kt)("a",{parentName:"p",href:"/touchsocket/docs/transferfile"},"\u5e38\u89c4\u6587\u4ef6\u4f20\u8f93"),"\u662f\u57fa\u4e8e\u5355\u4e2a\u8fde\u63a5\u94fe\u8def\u7684\uff0c\u6240\u4ee5\uff0c\u5355\u4e2a\u8fde\u63a5\u7684\u4f20\u8f93\u901f\u7387\u4e0a\u9650\uff0c\u5c31\u662f\u5e38\u89c4\u4f20\u8f93\u7684\u4e0a\u9650\u3002\u4e00\u822c\u6765\u8bf4\uff0c\u5c40\u57df\u7f51\u5f53\u4e2d\uff0c\u5355\u4e2a\u8fde\u63a5\u5373\u53ef\u5360\u6ee1\u6240\u6709\u5e26\u5bbd\uff0c\u6240\u4ee5\u8fd9\u65f6\u5019\u591a\u7ebf\u7a0b\u4f20\u8f93\u548c\u5e38\u89c4\u4f20\u8f93\u5e76\u65e0\u5dee\u522b\u3002\u4f46\u662f\uff0c\u5728\u4e91\u670d\u52a1\u5668\uff0c\u6216\u8005\u5728\u6709\u6d41\u91cf\u5747\u8861\u7b97\u6cd5\u7684\u7f51\u7edc\u4e2d\uff0c\u6bcf\u4e2a\u8fde\u63a5\u7684\u6700\u5927\u901f\u7387\u4e0d\u662f\u5e26\u5bbd\u7684\u6700\u5927\u901f\u7387\uff0c\u90a3\u4e48\u8fd9\u65f6\u5019\uff0c\u4e24\u4e2a\u5dee\u8ddd\u662f\u6bd4\u8f83\u5927\u7684\u3002"),(0,o.kt)("p",null,"\u4f8b\u5982\uff0c\u6211\u81ea\u5df1\u79df\u7684\u4e00\u4e2a\u5355\u6838\u4e91\u670d\u52a1\u5668\uff0c\u5b83\u7684\u5355\u4e2a\u8fde\u63a5\u901f\u7387\u53ea\u67091Mb\uff0c\u4f46\u662f\u5f39\u6027\u5e26\u5bbd\u5374\u670910Mb\u3002\u5b8f\u89c2\u8868\u8c61\u5c31\u662f\uff0c\u4e00\u4e2a\u5ba2\u6237\u7aef\u8fde\u63a5\u65f6\uff0c\u53ef\u4ee5\u75281Mb\u5e26\u5bbd\uff0c\u4e24\u4e2a\u5ba2\u6237\u7aef\u8fde\u63a5\u65f6\uff0c\u5c31\u53ef\u4ee5\u75282Mb\u3002\u90a3\u4e48\u8fd9\u65f6\u5019\uff0c\u591a\u7ebf\u7a0b\u4f20\u8f93\u5c31\u663e\u5f97\u683c\u5916\u91cd\u8981\u4e86\u3002"),(0,o.kt)("p",null,"\u5176\u6b21\uff0c\u591a\u7ebf\u7a0b\u4f20\u8f93\u662f\u65e0\u72b6\u6001\u7684\uff0c\u6240\u4ee5\u5bf9\u4e8e\u65ad\u7ebf\u91cd\u8fde\uff0c\u6362\u7f51\u91cd\u8fde\u7b49\u64cd\u4f5c\uff0c\u662f\u5b8c\u5168\u65e0\u611f\u7684\u3002"),(0,o.kt)("a",{name:"qLp3q"}),(0,o.kt)("h2",{id:"\u4e8c\u4f7f\u7528"},"\u4e8c\u3001\u4f7f\u7528"),(0,o.kt)("p",null,"\u56e0\u4e3a\u662f\u591a\u94fe\u8def\u4f20\u8f93\uff0c\u6240\u4ee5\uff0c\u5c31\u5fc5\u987b\u5efa\u7acb\u591a\u4e2a\u5ba2\u6237\u7aef\u7684\u8fde\u63a5\u5230\u670d\u52a1\u5668\u3002\u8fd9\u91cc\u4f7f\u7528\u5df2\u7ecf\u5c01\u88c5\u597d\u7684\u901a\u4fe1\u6a21\u578bClientFactory\u3002"),(0,o.kt)("p",null,"ClientFactory\u7684\u901a\u4fe1\u6a21\u578b\u4f7f\u7528\u7684\u662f\u4e00\u4e2a\u4e3b\u901a\u4fe1\u7aef+\u591a\u4e2a\u4f20\u8f93\u5ba2\u6237\u7aef\u3002"),(0,o.kt)("p",null,"\u5bf9\u4e8e\u5ba2\u6237\u7aef\u7684\u914d\u7f6e\uff0c\u8bf7\u8be6\u7ec6\u53c2\u8003",(0,o.kt)("a",{parentName:"p",href:"/touchsocket/docs/createtouchrpcclient"},"\u521b\u5efaTouchRpc\u5ba2\u6237\u7aef")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'private TcpTouchRpcClientFactory CreateClientFactory()\n{\n TcpTouchRpcClientFactory clientFactory = new TcpTouchRpcClientFactory()\n {\n MinCount = 5,\n MaxCount = 10,\n OnGetMainConfig = () =>//\u914d\u7f6e\u4e3b\u901a\u4fe1\n {\n return new TouchSocketConfig()\n .SetRemoteIPHost("tcp://127.0.0.1:7789");\n },\n OnGetTransferConfig = () => //\u914d\u7f6e\u8f85\u52a9\u901a\u4fe1\n {\n return new TouchSocketConfig()\n .SetRemoteIPHost("tcp://127.0.0.1:7789");\n }\n };\n\n return clientFactory;\n}\n')),(0,o.kt)("p",null,"\u3010\u62c9\u53d6\u6587\u4ef6\u3011"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpTouchRpcClientFactory clientFactory = CreateClientFactory();\nvar resultCon = clientFactory.CheckStatus();//\u68c0\u9a8c\u4e3b\u901a\u4fe1\u5668\u8fde\u63a5\u72b6\u6001\u3002\u9ed8\u8ba4\u5982\u679c\u6ca1\u6709\u8fde\u63a5\uff0c\u5219\u4f1a\u5efa\u7acb\u3002\nif (resultCon.IsSuccess())\n{\n var fileOperator = new MultithreadingFileOperator()\n {\n ResourcePath = path,//\u8bf7\u6c42\u8d44\u6e90\u8def\u5f84\n SavePath = savePath,//\u672c\u5730\u4fdd\u5b58\u8def\u5f84\n };\n //\u6b64\u5904\u76f8\u5f53\u4e8eTimer\uff0c\u6bcf\u79d2\u83b7\u53d6\u4f20\u8f93\u7684\u901f\u5ea6\u548c\u8fdb\u5ea6\n LoopAction loopAction = LoopAction.CreateLoopAction(1000, (loop) => \n {\n if (fileOperator.IsEnd)\n {\n loop.SafeDispose();\n }\n\n Console.WriteLine($"\u901f\u5ea6\uff1a{fileOperator.Speed()}\uff0c\u8fdb\u5ea6:{fileOperator.Progress}");\n });\n _=loopAction.RunAsync();\n\n Result result= await clientFactory.PullFileAsync(fileOperator);\n if (result.IsSuccess())\n {\n MessageBox.Show(result.ToString());\n }\n}\nelse\n{\n MessageBox.Show(resultCon.ToString());\n}\n\n')),(0,o.kt)("p",null,"\u3010\u63a8\u9001\u6587\u4ef6\u3011"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpTouchRpcClientFactory clientFactory = CreateClientFactory();\nvar resultCon = clientFactory.CheckStatus();//\u68c0\u9a8c\u4e3b\u901a\u4fe1\u5668\u8fde\u63a5\u72b6\u6001\u3002\u9ed8\u8ba4\u5982\u679c\u6ca1\u6709\u8fde\u63a5\uff0c\u5219\u4f1a\u5efa\u7acb\u3002\nif (resultCon.IsSuccess())\n{\n var fileOperator = new MultithreadingFileOperator()\n {\n ResourcePath = path,\n SavePath = savePath,\n };\n \n //\u6b64\u5904\u76f8\u5f53\u4e8eTimer\uff0c\u6bcf\u79d2\u83b7\u53d6\u4f20\u8f93\u7684\u901f\u5ea6\u548c\u8fdb\u5ea6\n LoopAction loopAction = LoopAction.CreateLoopAction(1000, (loop) => \n {\n if (fileOperator.IsEnd)\n {\n loop.SafeDispose();\n }\n\n Console.WriteLine($"\u901f\u5ea6\uff1a{fileOperator.Speed()}\uff0c\u8fdb\u5ea6:{fileOperator.Progress}");\n });\n _=loopAction.RunAsync();\n\n Result result=await clientFactory.PushFileAsync(fileOperator);\n if (result.IsSuccess())\n {\n MessageBox.Show(result.ToString());\n }\n}\nelse\n{\n MessageBox.Show(resultCon.ToString());\n}\n')),(0,o.kt)("a",{name:"SPTXq"}),(0,o.kt)("h2",{id:"\u4e09\u5ba2\u6237\u7aef\u4e4b\u95f4\u4f20\u8f93\u6587\u4ef6"},"\u4e09\u3001\u5ba2\u6237\u7aef\u4e4b\u95f4\u4f20\u8f93\u6587\u4ef6"),(0,o.kt)("p",null,"\u8be5\u529f\u80fd\u4e5f\u652f\u6301\u5ba2\u6237\u7aef\u4e4b\u95f4\u4e92\u76f8\u4f20\u8f93\u3002\u4f7f\u7528\u65b9\u6cd5\u57fa\u672c\u4e00\u81f4\uff0c\u9700\u8981\u989d\u5916\u6307\u5b9a\u76ee\u6807Id\uff0c\u4ee5\u53ca",(0,o.kt)("strong",{parentName:"p"},"\u83b7\u53d6\u4f20\u8f93\u7684Id\u96c6\u5408"),"\u5373\u53ef\u3002"),(0,o.kt)("p",null,"\u591a\u7ebf\u7a0b\u7684\u5ba2\u6237\u7aef\u4e4b\u95f4\u4f20\u8f93\u6587\u4ef6\uff0c\u4e0d\u50cf\u5176\u4ed6\u64cd\u4f5c\u7c7b\u578b\u90a3\u4e48\u7b80\u5355\u3002\u56e0\u4e3a\u9664\u4e86\u9700\u8981\u6307\u5b9a\u76ee\u7684Id\u5916\uff0c\u8fd8\u9700\u8981\u6307\u5b9a\u83b7\u53d6\u76ee\u6807Id\u7684\uff0c\u4f20\u8f93\u5ba2\u6237\u7aef\u7684Id\u96c6\u5408\uff0c\u4e0d\u7136\uff0c\u83b7\u53d6\u6570\u636e\u7684\u65f6\u5019\uff0c\u4ecd\u7136\u4f1a\u662f\u5355\u7ebf\u7a0b\u5de5\u4f5c\u7684\u3002"),(0,o.kt)("p",null,"\u6b64\u5916\uff0c",(0,o.kt)("strong",{parentName:"p"},"\u670d\u52a1\u5668"),"\u4e5f\u9700\u8981\u540c\u610f\u8def\u7531"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},"internal class MyTouchRpcPlugin : TouchRpcPluginBase\n{\n protected override void OnRouting(ITouchRpc client, PackageRouterEventArgs e)\n {\n if (e.RouterType== RouteType.PushFile||e.RouterType== RouteType.PullFile)\n {\n e.IsPermitOperation = true;\n }\n base.OnRouting(client, e);\n }\n}\n")),(0,o.kt)("p",null,"\u3010\u83b7\u53d6\u76ee\u6807\u4f20\u8f93\u5ba2\u6237\u7aef\u7684Id\u96c6\u5408\u3011\n\u5728TcpTouchRpcClientFactory\u5c5e\u6027\u4e2d\uff0c\u6709\u4e2aOnFindTransferIds\u3002\u901a\u8fc7\u5b9e\u73b0\u8be5\u5c5e\u6027\uff0c\u4f7f\u5176\u80fd\u591f\u83b7\u53d6\u5230\u5bf9\u5e94\u5ba2\u6237\u7aef\u7684\u4f20\u8f93\u5ba2\u6237\u7aefId\u96c6\u5408\uff08\u4e0b\u5217\u4ee3\u7801\u4e3a\u6a21\u62df\u503c\uff0c\u8981\u5177\u4f53\u5b9e\u73b0\u8be5\u529f\u80fd\uff0c\u8fd8\u5f97\u81ea\u884c\u5b9e\u73b0\uff09\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpTouchRpcClientFactory clientFactory = new TcpTouchRpcClientFactory()\n{\n MinCount = 5,\n MaxCount = 10,\n OnGetMainConfig = () =>//\u914d\u7f6e\u4e3b\u901a\u4fe1\n {\n return new TouchSocketConfig()\n .SetRemoteIPHost("tcp://127.0.0.1:7789")\n .SetVerifyToken("FileService");\n },\n OnGetTransferConfig = () => //\u914d\u7f6e\u8f85\u52a9\u901a\u4fe1\n {\n return new TouchSocketConfig()\n .SetRemoteIPHost("tcp://127.0.0.1:7789")\n .SetVerifyToken("FileService");\n }\n ,\n OnFindTransferIds = (client,targetId) => \n {\n //\u6b64\u5904\u7684\u64cd\u4f5c\u4e0d\u552f\u4e00\uff0c\u53ef\u80fd\u9700\u8981rpc\u5b9e\u73b0\u3002\n //\u5176\u76ee\u7684\u6bd4\u8f83\u7b80\u5355\uff0c\u5c31\u662f\u83b7\u53d6\u5230targetId\u5bf9\u5e94\u7684\u4e3b\u5ba2\u6237\u7aef\u7684\u6240\u6709\u4f20\u8f93\u5ba2\u6237\u7aef\u7684Id\u96c6\u5408\u3002\n //\u8fd9\u6837\u5c31\u5b9e\u73b0\u4e86\u591a\u4e2a\u5ba2\u6237\u7aef\u5411\u591a\u4e2a\u5ba2\u6237\u7aef\u4f20\u8f93\u6587\u4ef6\u7684\u76ee\u7684\u3002\n\n return new string[] { targetId};//\u6b64\u5904\u4e3a\u6a21\u62df\u7ed3\u679c\u3002\n }\n};\n')))}u.isMDXComponent=!0}}]);
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
(()=>{"use strict";var e,a,f,c,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={exports:{}};return d[e].call(f.exports,f,f.exports,r),f.exports}r.m=d,e=[],r.O=(a,f,c,b)=>{if(!f){var d=1/0;for(i=0;i<e.length;i++){f=e[i][0],c=e[i][1],b=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&b||d>=b)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,b<d&&(d=b));if(t){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[f,c,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};a=a||[null,f({}),f([]),f(f)];for(var t=2&c&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(b,d),b},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",138:"fce76f89",487:"ba9c7ecd",505:"28d8f037",631:"223951e7",803:"430053de",904:"d5d2094c",908:"8154dd80",969:"eb038c44",1168:"4e9c6747",1285:"1c9cad99",1302:"88be757d",1317:"11fc8f46",1569:"eafaca75",1586:"04ff01fb",1592:"a82e3754",1601:"b806365f",1687:"389c2360",1705:"d6be6cb7",1793:"da3959dc",1822:"f05a39b7",1868:"41b30073",1877:"8aa4b8ad",1895:"9e2cc891",1965:"17443a98",1969:"763782ab",1971:"b0d79caf",2022:"915634cf",2289:"3030335d",2362:"6d23fcc4",2373:"7c171c7d",2375:"578e6f54",2416:"9a8bd036",2671:"11f9f480",2894:"41627674",2903:"0fc86718",2934:"e782541c",2996:"0afce4d0",3214:"8c4cc064",3285:"b1f68223",3371:"d22033f9",3420:"babdfbe3",3503:"b7e03a75",3635:"8973b48c",4018:"078d73b8",4195:"c4f5d8e4",4456:"7a6724ae",4649:"e5d5df95",4724:"b4d3dab5",4850:"91a311b4",4929:"47f1b9ba",5215:"4ecf139e",5264:"9bfb9f12",5683:"355b4941",5725:"19a46420",5873:"3ab343cc",5983:"2c06b999",6050:"d6520aa6",6128:"b992e8b3",6171:"7b93349f",6191:"a81d4448",6373:"320af078",6487:"aa4c723b",6505:"965c04d6",6746:"e7e0ef60",7016:"dfe172e5",7162:"0a7a9b32",7278:"94601e7d",7436:"c8245f17",7453:"94e3a799",7462:"1ec5dc39",7790:"ce02ea51",7918:"17896441",7920:"1a4e3797",7978:"f0cb7c64",7986:"bcf858d2",8032:"c8d1f2bf",8102:"df41208d",8300:"177fd31f",8411:"aa2c2bac",8494:"5137840a",8610:"eb7c3b1b",8707:"4c79e569",8719:"a2c90a25",8808:"6bf8fe32",8835:"a46d2111",9030:"4d13c877",9035:"01fa1a8d",9198:"8e1e2f35",9253:"adf44bc8",9311:"53cff02b",9514:"1be78505",9541:"09a85799",9660:"a14859b4",9750:"0b8ef44c",9769:"9106ea79",9911:"13b149a4",9925:"0c2b5d1a",9954:"8e5f0e39"}[e]||e)+"."+{53:"72562f77",138:"87ef30ad",487:"ed9c972b",505:"a45d1145",631:"8d06409f",803:"80700119",904:"734ef0f5",908:"de0713d0",969:"bcb595ec",1168:"ecf806ef",1285:"039ee719",1302:"6021c737",1317:"7090702e",1569:"95f734b6",1586:"56fe44f1",1592:"6c72fa9c",1601:"5a258bf4",1687:"baae9616",1705:"b3757292",1793:"3f3b9bab",1822:"6b925fce",1868:"88c66a11",1877:"0b50bc02",1895:"072979a0",1965:"2fd798c5",1969:"e5ef4938",1971:"04fc16d3",2022:"e91d55ad",2289:"3367d96e",2362:"904f728c",2373:"82420f61",2375:"582b3ec5",2416:"135c0c4a",2671:"1f045afd",2894:"e57effb8",2903:"cf074266",2934:"36f93477",2996:"70237ac8",3214:"297bda93",3285:"1dcbed2c",3371:"c57d6289",3420:"955f3817",3503:"33d2c017",3635:"310d4fb3",4018:"4dc736f8",4195:"90ede736",4456:"5b8f96aa",4649:"a4354f78",4724:"b452fab0",4850:"2841a786",4929:"cdd48a18",4972:"c5f9020b",5215:"a21f12e3",5264:"704f443b",5525:"c53056dc",5683:"1678fd3c",5725:"d7b11e99",5873:"9358ed6d",5983:"5646f61e",6050:"ca22c63f",6128:"de443a34",6171:"84dc1f60",6191:"6d40d457",6373:"69561817",6487:"34e57568",6505:"495d92e3",6746:"a120f8c2",7016:"3113feba",7162:"190b7d66",7278:"5d94be73",7436:"32719dda",7453:"9dad8103",7462:"5959844a",7790:"b35e39e5",7918:"fc5f7a42",7920:"42a57863",7978:"ae3e9d2f",7986:"105dd11b",8032:"59006bc6",8102:"a4876b14",8300:"ede3771d",8411:"f10823d9",8443:"0183610a",8494:"fab40cc4",8610:"0dba8683",8707:"35326e51",8719:"03170d44",8808:"dcdba073",8835:"e7fd3370",9030:"35be218c",9035:"1831ff50",9198:"3b62d779",9253:"1067b890",9311:"6893293e",9514:"9cd1e63b",9523:"5d56e621",9541:"29e58d80",9660:"eb042ba8",9750:"49139891",9769:"88d3dc8b",9911:"a34a836b",9925:"6d37bd6a",9954:"927d9bfc"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},b="touchsocket:",r.l=(e,a,f,d)=>{if(c[e])c[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==b+f){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",b+f),t.src=e),c[e]=[a];var l=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var b=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/touchsocket/",r.gca=function(e){return e={17896441:"7918",41627674:"2894","935f2afb":"53",fce76f89:"138",ba9c7ecd:"487","28d8f037":"505","223951e7":"631","430053de":"803",d5d2094c:"904","8154dd80":"908",eb038c44:"969","4e9c6747":"1168","1c9cad99":"1285","88be757d":"1302","11fc8f46":"1317",eafaca75:"1569","04ff01fb":"1586",a82e3754:"1592",b806365f:"1601","389c2360":"1687",d6be6cb7:"1705",da3959dc:"1793",f05a39b7:"1822","41b30073":"1868","8aa4b8ad":"1877","9e2cc891":"1895","17443a98":"1965","763782ab":"1969",b0d79caf:"1971","915634cf":"2022","3030335d":"2289","6d23fcc4":"2362","7c171c7d":"2373","578e6f54":"2375","9a8bd036":"2416","11f9f480":"2671","0fc86718":"2903",e782541c:"2934","0afce4d0":"2996","8c4cc064":"3214",b1f68223:"3285",d22033f9:"3371",babdfbe3:"3420",b7e03a75:"3503","8973b48c":"3635","078d73b8":"4018",c4f5d8e4:"4195","7a6724ae":"4456",e5d5df95:"4649",b4d3dab5:"4724","91a311b4":"4850","47f1b9ba":"4929","4ecf139e":"5215","9bfb9f12":"5264","355b4941":"5683","19a46420":"5725","3ab343cc":"5873","2c06b999":"5983",d6520aa6:"6050",b992e8b3:"6128","7b93349f":"6171",a81d4448:"6191","320af078":"6373",aa4c723b:"6487","965c04d6":"6505",e7e0ef60:"6746",dfe172e5:"7016","0a7a9b32":"7162","94601e7d":"7278",c8245f17:"7436","94e3a799":"7453","1ec5dc39":"7462",ce02ea51:"7790","1a4e3797":"7920",f0cb7c64:"7978",bcf858d2:"7986",c8d1f2bf:"8032",df41208d:"8102","177fd31f":"8300",aa2c2bac:"8411","5137840a":"8494",eb7c3b1b:"8610","4c79e569":"8707",a2c90a25:"8719","6bf8fe32":"8808",a46d2111:"8835","4d13c877":"9030","01fa1a8d":"9035","8e1e2f35":"9198",adf44bc8:"9253","53cff02b":"9311","1be78505":"9514","09a85799":"9541",a14859b4:"9660","0b8ef44c":"9750","9106ea79":"9769","13b149a4":"9911","0c2b5d1a":"9925","8e5f0e39":"9954"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var c=r.o(e,a)?e[a]:void 0;if(0!==c)if(c)f.push(c[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((f,b)=>c=e[a]=[f,b]));f.push(c[2]=b);var d=r.p+r.u(a),t=new Error;r.l(d,(f=>{if(r.o(e,a)&&(0!==(c=e[a])&&(e[a]=void 0),c)){var b=f&&("load"===f.type?"missing":f.type),d=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,c[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var c,b,d=f[0],t=f[1],o=f[2],n=0;if(d.some((a=>0!==e[a]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(a&&a(f);n<d.length;n++)b=d[n],r.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return r.O(i)},f=self.webpackChunktouchsocket=self.webpackChunktouchsocket||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})();
\ No newline at end of file
(()=>{"use strict";var e,a,f,c,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var f=t[e]={exports:{}};return d[e].call(f.exports,f,f.exports,r),f.exports}r.m=d,e=[],r.O=(a,f,c,b)=>{if(!f){var d=1/0;for(i=0;i<e.length;i++){f=e[i][0],c=e[i][1],b=e[i][2];for(var t=!0,o=0;o<f.length;o++)(!1&b||d>=b)&&Object.keys(r.O).every((e=>r.O[e](f[o])))?f.splice(o--,1):(t=!1,b<d&&(d=b));if(t){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}b=b||0;for(var i=e.length;i>0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[f,c,b]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};a=a||[null,f({}),f([]),f(f)];for(var t=2&c&&e;"object"==typeof t&&!~a.indexOf(t);t=f(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(b,d),b},r.d=(e,a)=>{for(var f in a)r.o(a,f)&&!r.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,f)=>(r.f[f](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",138:"fce76f89",487:"ba9c7ecd",505:"28d8f037",631:"223951e7",803:"430053de",904:"d5d2094c",908:"8154dd80",969:"eb038c44",1168:"4e9c6747",1285:"1c9cad99",1302:"88be757d",1317:"11fc8f46",1569:"eafaca75",1586:"04ff01fb",1592:"a82e3754",1601:"b806365f",1687:"389c2360",1705:"d6be6cb7",1793:"da3959dc",1822:"f05a39b7",1868:"41b30073",1877:"8aa4b8ad",1895:"9e2cc891",1965:"17443a98",1969:"763782ab",1971:"b0d79caf",2022:"915634cf",2289:"3030335d",2362:"6d23fcc4",2373:"7c171c7d",2375:"578e6f54",2416:"9a8bd036",2671:"11f9f480",2894:"41627674",2903:"0fc86718",2934:"e782541c",2996:"0afce4d0",3214:"8c4cc064",3285:"b1f68223",3371:"d22033f9",3420:"babdfbe3",3503:"b7e03a75",3635:"8973b48c",4018:"078d73b8",4195:"c4f5d8e4",4456:"7a6724ae",4649:"e5d5df95",4724:"b4d3dab5",4850:"91a311b4",4929:"47f1b9ba",5215:"4ecf139e",5264:"9bfb9f12",5683:"355b4941",5725:"19a46420",5873:"3ab343cc",5983:"2c06b999",6050:"d6520aa6",6128:"b992e8b3",6171:"7b93349f",6191:"a81d4448",6373:"320af078",6487:"aa4c723b",6505:"965c04d6",6746:"e7e0ef60",7016:"dfe172e5",7162:"0a7a9b32",7278:"94601e7d",7436:"c8245f17",7453:"94e3a799",7462:"1ec5dc39",7586:"bc87ecb9",7790:"ce02ea51",7918:"17896441",7920:"1a4e3797",7978:"f0cb7c64",7986:"bcf858d2",8032:"c8d1f2bf",8102:"df41208d",8300:"177fd31f",8411:"aa2c2bac",8494:"5137840a",8610:"eb7c3b1b",8707:"4c79e569",8719:"a2c90a25",8808:"6bf8fe32",8835:"a46d2111",9030:"4d13c877",9035:"01fa1a8d",9171:"3b5f8c2c",9198:"8e1e2f35",9253:"adf44bc8",9311:"53cff02b",9514:"1be78505",9541:"09a85799",9660:"a14859b4",9750:"0b8ef44c",9769:"9106ea79",9911:"13b149a4",9925:"0c2b5d1a",9954:"8e5f0e39"}[e]||e)+"."+{53:"038364f3",138:"87ef30ad",487:"ed9c972b",505:"a45d1145",631:"8d06409f",803:"80700119",904:"734ef0f5",908:"de0713d0",969:"bcb595ec",1168:"a8032e2b",1285:"039ee719",1302:"6021c737",1317:"7090702e",1569:"95f734b6",1586:"56fe44f1",1592:"6c72fa9c",1601:"5a258bf4",1687:"baae9616",1705:"b3757292",1793:"9a73fd39",1822:"6b925fce",1868:"88c66a11",1877:"0b50bc02",1895:"072979a0",1965:"2fd798c5",1969:"e5ef4938",1971:"04fc16d3",2022:"e91d55ad",2289:"3367d96e",2362:"904f728c",2373:"82420f61",2375:"582b3ec5",2416:"135c0c4a",2671:"1f045afd",2894:"e57effb8",2903:"cf074266",2934:"36f93477",2996:"70237ac8",3214:"297bda93",3285:"1dcbed2c",3371:"c57d6289",3420:"955f3817",3503:"33d2c017",3635:"310d4fb3",4018:"4dc736f8",4195:"90ede736",4456:"5b8f96aa",4649:"a4354f78",4724:"b452fab0",4850:"2841a786",4929:"cdd48a18",4972:"c5f9020b",5215:"a21f12e3",5264:"704f443b",5525:"c53056dc",5683:"1678fd3c",5725:"00c2bf5d",5873:"9358ed6d",5983:"5646f61e",6050:"ca22c63f",6128:"de443a34",6171:"84dc1f60",6191:"6d40d457",6373:"69561817",6487:"34e57568",6505:"495d92e3",6746:"a120f8c2",7016:"3113feba",7162:"994d36b4",7278:"5d94be73",7436:"32719dda",7453:"9dad8103",7462:"5959844a",7586:"85e6345d",7790:"b35e39e5",7918:"fc5f7a42",7920:"42a57863",7978:"ae3e9d2f",7986:"105dd11b",8032:"59006bc6",8102:"a4876b14",8300:"ede3771d",8411:"f10823d9",8443:"0183610a",8494:"fab40cc4",8610:"0dba8683",8707:"35326e51",8719:"03170d44",8808:"dcdba073",8835:"e7fd3370",9030:"35be218c",9035:"1831ff50",9171:"0c031472",9198:"3b62d779",9253:"1067b890",9311:"6893293e",9514:"9cd1e63b",9523:"5d56e621",9541:"29e58d80",9660:"eb042ba8",9750:"49139891",9769:"88d3dc8b",9911:"a34a836b",9925:"6d37bd6a",9954:"927d9bfc"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),c={},b="touchsocket:",r.l=(e,a,f,d)=>{if(c[e])c[e].push(a);else{var t,o;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==b+f){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",b+f),t.src=e),c[e]=[a];var l=(a,f)=>{t.onerror=t.onload=null,clearTimeout(s);var b=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/touchsocket/",r.gca=function(e){return e={17896441:"7918",41627674:"2894","935f2afb":"53",fce76f89:"138",ba9c7ecd:"487","28d8f037":"505","223951e7":"631","430053de":"803",d5d2094c:"904","8154dd80":"908",eb038c44:"969","4e9c6747":"1168","1c9cad99":"1285","88be757d":"1302","11fc8f46":"1317",eafaca75:"1569","04ff01fb":"1586",a82e3754:"1592",b806365f:"1601","389c2360":"1687",d6be6cb7:"1705",da3959dc:"1793",f05a39b7:"1822","41b30073":"1868","8aa4b8ad":"1877","9e2cc891":"1895","17443a98":"1965","763782ab":"1969",b0d79caf:"1971","915634cf":"2022","3030335d":"2289","6d23fcc4":"2362","7c171c7d":"2373","578e6f54":"2375","9a8bd036":"2416","11f9f480":"2671","0fc86718":"2903",e782541c:"2934","0afce4d0":"2996","8c4cc064":"3214",b1f68223:"3285",d22033f9:"3371",babdfbe3:"3420",b7e03a75:"3503","8973b48c":"3635","078d73b8":"4018",c4f5d8e4:"4195","7a6724ae":"4456",e5d5df95:"4649",b4d3dab5:"4724","91a311b4":"4850","47f1b9ba":"4929","4ecf139e":"5215","9bfb9f12":"5264","355b4941":"5683","19a46420":"5725","3ab343cc":"5873","2c06b999":"5983",d6520aa6:"6050",b992e8b3:"6128","7b93349f":"6171",a81d4448:"6191","320af078":"6373",aa4c723b:"6487","965c04d6":"6505",e7e0ef60:"6746",dfe172e5:"7016","0a7a9b32":"7162","94601e7d":"7278",c8245f17:"7436","94e3a799":"7453","1ec5dc39":"7462",bc87ecb9:"7586",ce02ea51:"7790","1a4e3797":"7920",f0cb7c64:"7978",bcf858d2:"7986",c8d1f2bf:"8032",df41208d:"8102","177fd31f":"8300",aa2c2bac:"8411","5137840a":"8494",eb7c3b1b:"8610","4c79e569":"8707",a2c90a25:"8719","6bf8fe32":"8808",a46d2111:"8835","4d13c877":"9030","01fa1a8d":"9035","3b5f8c2c":"9171","8e1e2f35":"9198",adf44bc8:"9253","53cff02b":"9311","1be78505":"9514","09a85799":"9541",a14859b4:"9660","0b8ef44c":"9750","9106ea79":"9769","13b149a4":"9911","0c2b5d1a":"9925","8e5f0e39":"9954"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,f)=>{var c=r.o(e,a)?e[a]:void 0;if(0!==c)if(c)f.push(c[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var b=new Promise(((f,b)=>c=e[a]=[f,b]));f.push(c[2]=b);var d=r.p+r.u(a),t=new Error;r.l(d,(f=>{if(r.o(e,a)&&(0!==(c=e[a])&&(e[a]=void 0),c)){var b=f&&("load"===f.type?"missing":f.type),d=f&&f.target&&f.target.src;t.message="Loading chunk "+a+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,c[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,f)=>{var c,b,d=f[0],t=f[1],o=f[2],n=0;if(d.some((a=>0!==e[a]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(a&&a(f);n<d.length;n++)b=d[n],r.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return r.O(i)},f=self.webpackChunktouchsocket=self.webpackChunktouchsocket||[];f.forEach(a.bind(null,0)),f.push=a.bind(null,f.push.bind(f))})()})();
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册