diff --git a/handbook/build/404.html b/handbook/build/404.html index 8e0e2cb071527e16e6a8394d0a30d2a88b4491f9..4be30ba4d19e78a66fe0febb53061e574eb89376 100644 --- a/handbook/build/404.html +++ b/handbook/build/404.html @@ -4,13 +4,13 @@ Page Not Found | TouchSocket - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/handbook/build/assets/js/04ff01fb.9a8874f6.js b/handbook/build/assets/js/04ff01fb.cdc85606.js similarity index 99% rename from handbook/build/assets/js/04ff01fb.9a8874f6.js rename to handbook/build/assets/js/04ff01fb.cdc85606.js index 3ffd88202f286b0e362463730dfb367968988a82..8a3e1236e806bf3202ba6d49924d5fc2a05db758 100644 --- a/handbook/build/assets/js/04ff01fb.9a8874f6.js +++ b/handbook/build/assets/js/04ff01fb.cdc85606.js @@ -1 +1 @@ -"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[1586],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var l=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 r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=l.createContext({}),s=function(e){var t=l.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return l.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},d=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,o=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(n),k=a,v=d["".concat(o,".").concat(k)]||d[k]||u[k]||r;return n?l.createElement(v,i(i({ref:t},p),{},{components:n})):l.createElement(v,i({ref:t},p))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=d;var c={};for(var o in t)hasOwnProperty.call(t,o)&&(c[o]=t[o]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var s=2;s{n.d(t,{Z:()=>F});var l=n(7294),a=n(7462);const r=(e,t,n)=>e?"string"==typeof e?e:e[t]||n:n,i={display:"block"},c=e=>{let{size:t,color:n,style:c,...o}=e;const s=c?{...i,...c}:i;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:s},o),l.createElement("path",{d:"M856.4 292.8c-63.3-63.6-126.6-127.1-190.2-190.3-15.3-15.2-32.7-16.1-48.1-0.8-64.3 63.6-128.1 127.6-191.8 191.9-14 14.2-16.3 31.6-1.7 46 14.8 14.7 31.5 10.6 46.1-2.7 5.1-4.6 9.8-9.7 14.7-14.7 39.2-39.7 78.5-79.5 122.8-124.4 0 170 3 332.2-1.1 494-2.4 96.4-91.2 174.6-187.4 176.6-110.6 2.3-198.6-84.4-199-197.4-0.6-136.3-0.2-272.6-0.1-408.9 0-21.8-7.9-37.4-31.2-39.9-18.9-2-33.2 13.2-33.1 37.5 0 145.8-3.4 291.7 2.4 437.2 6 152.1 160.4 263.5 309.5 230.5C591.8 900 672.8 797.2 673.6 664.6c0.8-144 0.2-288.1 0.2-432.1v-33.3c11.2 10.2 17.6 15.4 23.3 21.3 38.5 38.4 76.7 77 115.3 115.2 14.8 14.6 32.2 19.2 47.8 2.9 13.8-14.8 10.3-31.7-3.8-45.8z",fill:r(n,0,"#333333")}))};c.defaultProps={size:18};const o=c,s={display:"block"},p=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...s,...i}:s;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M143.872 768a51.2 51.2 0 0 1-15.36-2.56 51.2 51.2 0 0 1-35.328-51.2V283.136a148.992 148.992 0 0 1 141.824-153.6h450.56a148.992 148.992 0 0 1 141.824 153.6V512a148.992 148.992 0 0 1-141.824 153.6H244.224l-60.928 80.896a51.2 51.2 0 0 1-39.424 21.504zM235.008 180.224a97.792 97.792 0 0 0-90.624 102.4v430.592L218.624 614.4h466.944a97.792 97.792 0 0 0 90.624-102.4V283.136a97.792 97.792 0 0 0-90.624-102.4z",fill:r(n,0,"#333333")}),l.createElement("path",{d:"M880.128 875.52a51.2 51.2 0 0 1-39.424-20.48l-60.928-80.896h-243.2a25.6 25.6 0 0 1 0-51.2h268.8l76.288 102.4v-295.936a25.6 25.6 0 0 1 25.6-25.6 25.6 25.6 0 0 1 25.6 25.6v293.888a51.2 51.2 0 0 1-51.2 51.2z",fill:r(n,1,"#333333")}))};p.defaultProps={size:18};const u=p,d={display:"block"},k=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...d,...i}:d;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M223.425605 449.2744l161.632237 0 0 253.65714c0 16.954137 13.745049 30.699186 30.699186 30.699186 16.95516 0 30.699186-13.745049 30.699186-30.699186l0-284.356326c0-16.95516-13.744026-30.699186-30.699186-30.699186L291.035446 387.876028l217.23665-248.51605L733.039255 387.580293 607.104031 387.580293c-16.954137 0-30.699186 13.745049-30.699186 30.699186l0 284.652062c0 16.954137 13.745049 30.699186 30.699186 30.699186s30.699186-13.745049 30.699186-30.699186L637.803217 448.978664l164.448376 0c12.140505 0 23.140023-7.154957 28.063149-18.251689 4.922103-11.097756 2.841721-24.053835-5.307889-33.05279L530.62315 72.570829c-5.881964-6.495948-14.273075-10.134825-23.024389-10.091846-8.763594 0.076748-17.076934 3.895727-22.844288 10.494005L200.312188 398.371056c-7.92653 9.067516-9.818623 21.931498-4.839215 32.896224S211.383338 449.2744 223.425605 449.2744z",fill:r(n,0,"#333333")}),l.createElement("path",{d:"M222.354204 829.113381l581.732178 0c16.954137 0 30.699186-13.745049 30.699186-30.699186s-13.745049-30.699186-30.699186-30.699186L222.354204 767.715009c-16.954137 0-30.699186 13.745049-30.699186 30.699186S205.400067 829.113381 222.354204 829.113381z",fill:r(n,1,"#333333")}),l.createElement("path",{d:"M804.086381 896.729361 222.354204 896.729361c-16.954137 0-30.699186 13.745049-30.699186 30.699186s13.745049 30.699186 30.699186 30.699186l581.732178 0c16.954137 0 30.699186-13.745049 30.699186-30.699186S821.041542 896.729361 804.086381 896.729361z",fill:r(n,2,"#333333")}))};k.defaultProps={size:18};const v=k,g={display:"block"},m=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...g,...i}:g;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M380.15463648 874.54223633c0 18.12744166-14.83154297 32.95898463-32.95898463 32.95898463s-32.95898463-14.83154297-32.95898462-32.95898463V228.9152832L172.71078883 370.86962865a33.04467773 33.04467773 0 0 1-46.60400416 0 33.04467773 33.04467773 0 0 1 0-46.6040034l197.55615234-198.14941406A32.76782227 32.76782227 0 0 1 347.0967749 116.52514674c0.03295924 0 0.06591772-0.03295924 0.09887695-0.03295924 1.54907201 0 2.90039088 0.69213867 4.41650366 0.88989258 2.66967773 0.39550781 5.40527318 0.59326172 7.94311548 1.61499049 12.03002904 4.94384766 20.59936549 16.71020508 20.59936549 30.45410156v725.0910642z m320.15698192 23.34155248a32.85351537 32.85351537 0 0 1-23.43383789 9.59106445c-0.03295924 0-0.06591772 0.03295924-0.09887696 0.03295924-1.54907201 0-2.90039088-0.69213867-4.41650365-0.92285182-2.70263697-0.36254857-5.40527318-0.56030248-7.94311549-1.61498972-12.03002904-4.91088842-20.59936549-16.67724584-20.59936473-30.42114309V149.45776367c0-18.12744166 14.83154297-32.95898463 32.95898387-32.95898463s32.95898463 14.83154297 32.95898463 32.95898463v645.60058619l141.52587916-141.92138697c12.81445313-12.82104467 33.81591797-12.82104467 46.63037109 0 12.78808619 12.81445313 12.78808619 33.77636719 0 46.60400416L700.3116184 897.88378881z",fill:r(n,0,"#333333")}))};m.defaultProps={size:18};const h=m,y={display:"block"},f=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...y,...i}:y;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1172 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M870.0416 250.4704a38.4 38.4 0 0 0-8.96 53.5552c13.056 18.2784 24.4224 37.8368 33.7408 58.112a38.4512 38.4512 0 0 0 50.944 18.8928 38.4512 38.4512 0 0 0 18.8416-50.944 436.0192 436.0192 0 0 0-40.96-70.6048 38.3488 38.3488 0 0 0-53.6064-9.0112zM181.4528 566.016a35.9936 35.9936 0 0 0 25.5488-10.5984L351.7952 410.624a36.096 36.096 0 1 0-51.0976-51.0976L217.6 442.5728C250.0096 278.1184 395.264 153.6 569.1392 153.6c50.7904 0 99.8912 10.3936 145.92 30.9248a38.4 38.4 0 1 0 31.232-70.0928 431.36 431.36 0 0 0-177.152-37.632c-214.6816 0-393.1136 156.416-428.4416 361.216L62.1568 359.4752a36.1984 36.1984 0 0 0-51.0976 51.0976l144.8448 144.7936a36.0448 36.0448 0 0 0 25.5488 10.6496zM978.5344 463.104a36.1984 36.1984 0 0 0-51.0976 0l-144.8448 144.7936a36.096 36.096 0 1 0 51.0976 51.0976l88.6272-88.576C894.3104 740.2496 746.8032 870.4 569.1392 870.4a357.7856 357.7856 0 0 1-325.2736-207.7184 38.4 38.4 0 1 0-69.7344 32.3072 434.3808 434.3808 0 0 0 394.9568 252.2112c215.1936 0 393.984-157.184 428.6464-362.7008l74.496 74.496a35.9936 35.9936 0 0 0 51.0976 0 36.096 36.096 0 0 0 0-51.0976l-144.7936-144.7936z",fill:r(n,0,"#333333")}))};f.defaultProps={size:18};const S=f,C={display:"block"},N=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...C,...i}:C;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M302 332a30 30 0 1 1 0-60h420a30 30 0 0 1 0 60H302zM302 542a30 30 0 0 1 0-60h420a30 30 0 0 1 0 60H302zM302 752a30 30 0 0 1 0-60h120a30 30 0 0 1 0 60H302z",fill:r(n,0,"#333333")}),l.createElement("path",{d:"M789.47 784.1a30 30 0 0 1 39.36 45.3l-144.24 125.25a30 30 0 0 1-19.68 7.35H214.85C163.4 962 122 919.46 122 867.38V156.62C122 104.54 163.4 62 214.85 62h594.3C860.6 62 902 104.54 902 156.62v529.05a30 30 0 1 1-60 0V156.62C842 137.3 827.09 122 809.15 122H214.85C196.91 122 182 137.3 182 156.62v710.76C182 886.7 196.91 902 214.85 902h438.84l135.78-117.9z",fill:r(n,1,"#333333")}),l.createElement("path",{d:"M692 931.19a30 30 0 1 1-60 0v-174.6C632 704.57 673.4 662 724.85 662h147.78a30 30 0 0 1 0 60h-147.78c-17.94 0-32.85 15.3-32.85 34.62v174.6z",fill:r(n,2,"#333333")}))};N.defaultProps={size:18};const b=N,P={display:"block"},T=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...P,...i}:P;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M512 883.2A371.2 371.2 0 1 0 140.8 512 371.2 371.2 0 0 0 512 883.2z m0 64a435.2 435.2 0 1 1 435.2-435.2 435.2 435.2 0 0 1-435.2 435.2z",fill:r(n,0,"#333333")}),l.createElement("path",{d:"M557.056 512l122.368 122.368a31.744 31.744 0 1 1-45.056 45.056L512 557.056l-122.368 122.368a31.744 31.744 0 1 1-45.056-45.056L466.944 512 344.576 389.632a31.744 31.744 0 1 1 45.056-45.056L512 466.944l122.368-122.368a31.744 31.744 0 1 1 45.056 45.056z",fill:r(n,1,"#333333")}))};T.defaultProps={size:18};const I=T,w={display:"block"},B=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...w,...i}:w;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5 0.2 13 0.7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2c41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7 0.4-6.4 0.7-12.8 0.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3-20.1 11.8-42 20-64.9 24.3V484c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v396.5c-22.9-4.3-44.8-12.5-64.9-24.3-30.3-17.7-55.6-43-73.3-73.3C317.7 752 308 716.8 308 680V412h408v268z",fill:r(n,0,"#333333")}),l.createElement("path",{d:"M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z",fill:r(n,1,"#333333")}))};B.defaultProps={size:18};const z=B,E={display:"block"},x=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...E,...i}:E;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M512 71.68c-242.688 0-440.32 197.632-440.32 440.32s197.632 440.32 440.32 440.32 440.32-197.632 440.32-440.32-197.632-440.32-440.32-440.32z m0 819.2c-208.896 0-378.88-169.984-378.88-378.88s169.984-378.88 378.88-378.88 378.88 169.984 378.88 378.88-169.984 378.88-378.88 378.88z",fill:r(n,0,"#333333")}),l.createElement("path",{d:"M542.72 261.12H481.28v220.16H261.12v61.44h220.16v220.16h61.44v-220.16h220.16V481.28h-220.16z",fill:r(n,1,"#333333")}))};x.defaultProps={size:18};const M=x,D={display:"block"},O=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...D,...i}:D;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M384 896h-64v-70.4c0-15.2-10.4-28-24.8-31.2C159.2 768 64 644.8 64 496v-32h64v32c0 118.4 73.6 215.2 179.2 236 44.8 8.8 76.8 48 76.8 94.4v69.6zM704 896h-64v-70.4c0-45.6 32-85.6 76.8-94.4C822.4 711.2 896 614.4 896 496v-32h64v32c0 148.8-95.2 272-231.2 298.4-14.4 3.2-24.8 16-24.8 31.2v70.4zM512.8 640l-41.6-37.6c-147.2-133.6-244-208-244-316.8 0-88 68.8-156.8 156.8-156.8 49.6 0 97.6 23.2 128.8 60C544 152 592 128.8 641.6 128.8c88 0 156.8 68.8 156.8 156.8 0 108-96.8 183.2-244 316.8L512.8 640z",fill:r(n,0,"#333333")}))};O.defaultProps={size:18};const H=O,L={display:"block"},A=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...L,...i}:L;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M942.4615936 284.62787926c-14.30911886-14.12709945-37.31996786-14.05468217-51.48229632 0.21920654L517.97142983 661.27810333 139.75544149 286.45003606c-14.30911886-14.16232846-37.31996786-14.05468217-51.51948344 0.21920654-14.16232846 14.30911886-14.05468217 37.35519687 0.21920654 51.51948345l401.99014627 398.34974663c0.61847666 0.61847666 1.41897273 0.76526706 2.03940637 1.34655658 0.14483342 0.14483342 0.18201941 0.32685283 0.32685283 0.47364324 7.09877874 7.02636259 16.38375538 10.55911595 25.63154489 10.55911595 9.35739278 0 18.75001458-3.60516949 25.85075143-10.77636551l398.34974663-401.99014628C956.84312974 321.8382427 956.73548345 298.7921647 942.4615936 284.62787926z",fill:r(n,0,"#333333")}))};A.defaultProps={size:18};const R=A,U={display:"block"},Z=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...U,...i}:U;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M81.5384064 739.37212074c14.30911886 14.12709945 37.31996786 14.05468217 51.48229632-0.21920654L506.02857017 362.72189667 884.24455851 737.54996394c14.30911886 14.16232846 37.31996786 14.05468217 51.51948344-0.21920654 14.16232846-14.30911886 14.05468217-37.35519687-0.21920654-51.51948345l-401.99014627-398.34974663c-0.61847666-0.61847666-1.41897273-0.76526706-2.03940637-1.34655658-0.14483342-0.14483342-0.18201941-0.32685283-0.32685282-0.47364324-7.09877874-7.02636259-16.38375538-10.55911595-25.6315449-10.55911595-9.35739278 0-18.75001458 3.60516949-25.85075143 10.77636551l-398.34974663 401.99014628C67.15687026 702.1617573 67.26451655 725.2078353 81.5384064 739.37212074z",fill:r(n,0,"#333333")}))};Z.defaultProps={size:18};const j=Z,q=e=>{let{name:t,...n}=e;switch(t){case"youhua":return l.createElement(o,n);case"dayi":return l.createElement(u,n);case"shengji":return l.createElement(v,n);case"tiaozheng":return l.createElement(h,n);case"gengxin":return l.createElement(S,n);case"wendang":return l.createElement(b,n);case"shanchu":return l.createElement(I,n);case"bug":return l.createElement(z,n);case"xinzeng":return l.createElement(M,n);case"fuwu":return l.createElement(H,n);case"down":return l.createElement(R,n);case"up":return l.createElement(j,n)}return null},G="label_p8vM",V="icon_knQK";function F(e){const{children:t}=e,n={"\u65b0\u589e":{icon:"xinzeng",bgColor:"#39b54a"},"\u4fee\u590d":{icon:"bug",bgColor:"#9c26b0"},"\u6587\u6863":{icon:"wendang",bgColor:"rgb(79, 147, 255)"},"\u66f4\u65b0":{icon:"gengxin",bgColor:"#0081ff"},"\u8c03\u6574":{icon:"tiaozheng",bgColor:"#333"},"\u5347\u7ea7":{icon:"shengji",bgColor:"#e03997"},"\u79fb\u9664":{icon:"shanchu",bgColor:"#666"},"\u7b54\u7591":{icon:"dayi",bgColor:"#bbb"},"\u4f18\u5316":{icon:"youhua",bgColor:"#38e550"},"\u63a8\u8350":{bgColor:"#38e550"},"\u4f01\u4e1a\u7248":{bgColor:"#23AAF2"}};return l.createElement("label",{className:G,title:t,style:{backgroundColor:n[t].bgColor}},l.createElement(q,{name:n[t].icon,color:"white",size:14,className:V})," ",t)}},4748:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var l=n(7462),a=(n(7294),n(3905)),r=n(510);const i={id:"createtcpservice",title:"\u521b\u5efaTcpService"},c=void 0,o={unversionedId:"createtcpservice",id:"createtcpservice",title:"\u521b\u5efaTcpService",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/createtcpservice.mdx",sourceDirName:".",slug:"/createtcpservice",permalink:"/touchsocket/docs/createtcpservice",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/createtcpservice.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1677215236,formattedLastUpdatedAt:"Feb 24, 2023",frontMatter:{id:"createtcpservice",title:"\u521b\u5efaTcpService"},sidebar:"docs",previous:{title:"Tcp\u5165\u95e8\u57fa\u7840",permalink:"/touchsocket/docs/tcpintroduction"},next:{title:"\u521b\u5efaTcpClient",permalink:"/touchsocket/docs/createtcpclient"}},s={},p=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u7279\u70b9",id:"\u4e8c\u7279\u70b9",level:2},{value:"\u4e09\u3001\u4ea7\u54c1\u5e94\u7528\u573a\u666f",id:"\u4e09\u4ea7\u54c1\u5e94\u7528\u573a\u666f",level:2},{value:"\u56db\u3001\u670d\u52a1\u5668\u67b6\u6784",id:"\u56db\u670d\u52a1\u5668\u67b6\u6784",level:2},{value:"\u4e94\u3001\u53ef\u914d\u7f6e\u9879",id:"\u4e94\u53ef\u914d\u7f6e\u9879",level:2},{value:"SetBufferLength",id:"setbufferlength",level:4},{value:"SetMaxPackageSize",id:"setmaxpackagesize",level:4},{value:"SetThreadCount",id:"setthreadcount",level:4},{value:"SetGetDefaultNewID",id:"setgetdefaultnewid",level:4},{value:"SetListenIPHosts",id:"setlisteniphosts",level:4},{value:"SetServerName",id:"setservername",level:4},{value:"SetBacklogProperty",id:"setbacklogproperty",level:4},{value:"SetMaxCount",id:"setmaxcount",level:4},{value:"SetReceiveType",id:"setreceivetype",level:4},{value:"UsePlugin",id:"useplugin",level:4},{value:"SetServiceSslOption",id:"setservicessloption",level:4},{value:"UseNoDelay",id:"usenodelay",level:4},{value:"UseDelaySender",id:"usedelaysender",level:4},{value:"UseReuseAddress",id:"usereuseaddress",level:4},{value:"SetRemoteIPHost",id:"setremoteiphost",level:4},{value:"SetClientSslOption",id:"setclientssloption",level:4},{value:"SetKeepAliveValue",id:"setkeepalivevalue",level:4},{value:"SetBindIPHost",id:"setbindiphost",level:4},{value:"UseNoDelay",id:"usenodelay-1",level:4},{value:"UseBroadcast",id:"usebroadcast",level:4},{value:"\u516d\u3001\u652f\u6301\u63d2\u4ef6",id:"\u516d\u652f\u6301\u63d2\u4ef6",level:2},{value:"\u4e03\u3001\u521b\u5efaTcpService",id:"\u4e03\u521b\u5efatcpservice",level:2},{value:"7.1 \u7b80\u5355\u521b\u5efa",id:"71-\u7b80\u5355\u521b\u5efa",level:3},{value:"7.2 \u6cdb\u578b\u521b\u5efa",id:"72-\u6cdb\u578b\u521b\u5efa",level:3},{value:"\u516b\u3001\u63a5\u6536\u6570\u636e",id:"\u516b\u63a5\u6536\u6570\u636e",level:2},{value:"8.1 Received\u59d4\u6258\u5904\u7406",id:"81-received\u59d4\u6258\u5904\u7406",level:3},{value:"8.2 \u91cd\u5199SocketClient\u5904\u7406",id:"82-\u91cd\u5199socketclient\u5904\u7406",level:3},{value:"8.3 \u63d2\u4ef6\u5904\u7406 \u63a8\u8350",id:"83-\u63d2\u4ef6\u5904\u7406-\u63a8\u8350",level:3},{value:"\u4e5d\u3001AspNetCore\u4e2d\u521b\u5efa",id:"\u4e5daspnetcore\u4e2d\u521b\u5efa",level:2},{value:"\u5341\u3001\u53d1\u9001\u6570\u636e",id:"\u5341\u53d1\u9001\u6570\u636e",level:2},{value:"10.1 \u5982\u4f55\u83b7\u53d6SocketClient\uff1f",id:"101-\u5982\u4f55\u83b7\u53d6socketclient",level:3},{value:"10.2 \u53d1\u9001",id:"102-\u53d1\u9001",level:3},{value:"10.3 \u901a\u8fc7TcpService\u53d1\u9001",id:"103-\u901a\u8fc7tcpservice\u53d1\u9001",level:3}],u={toc:p};function d(e){let{components:t,...i}=e;return(0,a.kt)("wrapper",(0,l.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,a.kt)("p",null,"TcpService\u662fTcp\u7cfb\u670d\u52a1\u5668\u57fa\u7c7b\uff0c\u5b83\u4e0d\u53c2\u4e0e\u5b9e\u9645\u7684\u6570\u636e\u4ea4\u4e92\uff0c\u53ea\u662f\u914d\u7f6e\u3001\u6fc0\u6d3b\u3001\u7ba1\u7406\u3001\u6ce8\u9500\u3001\u91cd\u5efa",(0,a.kt)("strong",{parentName:"p"},"SocketClient"),"\u7c7b\u5b9e\u4f8b\u3002\u800c",(0,a.kt)("strong",{parentName:"p"},"SocketClient"),"\u662f\u5f53",(0,a.kt)("strong",{parentName:"p"},"TcpClient\uff08\u5ba2\u6237\u7aef\uff09"),"\u6210\u529f\u8fde\u63a5\u670d\u52a1\u5668\u4ee5\u540e\uff0c\u7531\u670d\u52a1\u5668\u65b0\u5efa\u7684\u4e00\u4e2a\u5b9e\u4f8b\u7c7b\uff0c\u540e\u7eed\u7684\u6240\u6709\u901a\u4fe1\uff0c\u4e5f\u90fd\u662f\u901a\u8fc7\u8be5\u5b9e\u4f8b\u5b8c\u6210\u7684\u3002"),(0,a.kt)("h2",{id:"\u4e8c\u7279\u70b9"},"\u4e8c\u3001\u7279\u70b9"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u7b80\u5355\u6613\u7528\u3002"),(0,a.kt)("li",{parentName:"ul"},"IOCP\u591a\u7ebf\u7a0b\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u5185\u5b58\u6c60\u652f\u6301"),(0,a.kt)("li",{parentName:"ul"},"\u9ad8\u6027\u80fd\uff08\u5b9e\u6d4b\u670d\u52a1\u5668\u5355\u5ba2\u6237\u7aef\u5355\u7ebf\u7a0b\uff0c\u6bcf\u79d2\u53ef\u63a5\u6536200w\u67618\u5b57\u8282\u7684\u4fe1\u606f\uff0c\u63a5\u6536\u6570\u636e\u6d41\u91cf\u53ef\u8fbe2.5GB/s\uff09\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u591a\u5730\u5740\u76d1\u542c"),"\uff08\u53ef\u4ee5\u4e00\u6b21\u6027\u76d1\u542c\u591a\u4e2aIP\u53ca\u7aef\u53e3\uff09"),(0,a.kt)("li",{parentName:"ul"},"\u9002\u914d\u5668\u9884\u5904\u7406\uff0c\u4e00\u952e\u5f0f\u89e3\u51b3",(0,a.kt)("strong",{parentName:"li"},"\u5206\u5305"),"\u3001",(0,a.kt)("strong",{parentName:"li"},"\u7c98\u5305"),"\u3001\u5bf9\u8c61\u89e3\u6790(\u5982HTTP\uff0cJson)\u7b49\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u8d85\u7b80\u5355\u7684\u540c\u6b65\u53d1\u9001\u3001\u5f02\u6b65\u53d1\u9001\u3001\u63a5\u6536\u7b49\u64cd\u4f5c\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u57fa\u4e8e\u59d4\u6258\u3001\u63d2\u4ef6\u9a71\u52a8\uff0c\u8ba9\u6bcf\u4e00\u6b65\u90fd\u80fd\u6267\u884cAOP\u3002")),(0,a.kt)("h2",{id:"\u4e09\u4ea7\u54c1\u5e94\u7528\u573a\u666f"},"\u4e09\u3001\u4ea7\u54c1\u5e94\u7528\u573a\u666f"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6240\u6709Tcp\u57fa\u7840\u4f7f\u7528\u573a\u666f\uff1a\u53ef\u8de8\u5e73\u53f0\u3001\u8de8\u8bed\u8a00\u4f7f\u7528\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u81ea\u5b9a\u4e49\u534f\u8bae\u89e3\u6790\u573a\u666f\uff1a\u53ef\u89e3\u6790\u4efb\u610f\u6570\u636e\u683c\u5f0f\u7684TCP\u6570\u636e\u62a5\u6587\u3002")),(0,a.kt)("h2",{id:"\u56db\u670d\u52a1\u5668\u67b6\u6784"},"\u56db\u3001\u670d\u52a1\u5668\u67b6\u6784"),(0,a.kt)("p",null,"\u670d\u52a1\u5668\u5728\u6536\u5230",(0,a.kt)("strong",{parentName:"p"},"\u65b0\u5ba2\u6237\u7aef\u8fde\u63a5"),"\u65f6\uff0c\u4f1a\u521b\u5efa\u4e00\u4e2aSocketClient\u7684\u6d3e\u751f\u7c7b\u5b9e\u4f8b\uff0c\u4e0e\u5ba2\u6237\u7aefTcpClient\u4e00\u4e00\u5bf9\u5e94\uff0c\u540e\u7eed\u7684\u6570\u636e\u901a\u4fe1\u5747\u7531\u6b64\u5b9e\u4f8b\u8d1f\u8d23\u3002"),(0,a.kt)("p",null,"SocketClient\u5728Service\u91cc\u9762\u4ee5\u5b57\u5178\u6620\u5c04\u3002ID\u4e3a\u952e\uff0cSocketClient\u672c\u8eab\u4e3a\u503c\u3002"),(0,a.kt)("img",{src:n(9544).Z,width:"500"}),(0,a.kt)("h2",{id:"\u4e94\u53ef\u914d\u7f6e\u9879"},"\u4e94\u3001\u53ef\u914d\u7f6e\u9879"),(0,a.kt)("details",null,(0,a.kt)("summary",null,"\u53ef\u914d\u7f6e\u9879"),(0,a.kt)("div",null,(0,a.kt)("h4",{id:"setbufferlength"},"SetBufferLength"),(0,a.kt)("p",null,"\u53d1\u9001\u3001\u63a5\u6536\u7f13\u5b58\u5bb9\u91cf\uff08\u5355\u4f4d\uff1abyte\uff09\uff0c\u9ed8\u8ba41024\xd764\u3002\u8bbe\u7f6e\u5efa\u8bae\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u6570\u636e\u5305\u8f83\u5c0f\uff0c\u5efa\u8bae10k\u5de6\u53f3\u7684\u503c\u3002\u66f4\u52a0\u8282\u7ea6\u5185\u5b58\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u6570\u636e\u5305\u8f83\u5927\uff0c\u4f8b\u5982\u6587\u4ef6\u4f20\u8f93\u7b49\uff0c\u5efa\u8bae64k\uff0c\u751a\u81f3\u66f4\u5927\u7684\u503c\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u8be5\u503c\u867d\u7136\u65e0\u4e0a\u9650\uff0c\u4f46\u662f\u4e00\u822c\u4e0d\u8981\u8d85\u8fc71Mb\uff0c\u4e0d\u7136\u4e0d\u4ec5\u6ca1\u610f\u4e49\uff0c\u8fd8\u5f88\u6d6a\u8d39")),(0,a.kt)("h4",{id:"setmaxpackagesize"},"SetMaxPackageSize"),(0,a.kt)("p",null,"\u6570\u636e\u5305\u6700\u5927\u503c\uff08\u5355\u4f4d\uff1abyte\uff09\uff0c\u9ed8\u8ba41024\xd71024\xd710\u3002\u8be5\u503c\u4f1a\u5728\u9002\u5f53\u65f6\u95f4\uff0c\u76f4\u63a5\u4f5c\u7528DataHandlingAdapter.MaxPackageSize\u3002 "),(0,a.kt)("h4",{id:"setthreadcount"},"SetThreadCount"),(0,a.kt)("p",null,"\u591a\u7ebf\u7a0b\u6570\u91cf\u3002\u8be5\u503c\u5728Auto\u6a21\u5f0f\u4e0b\u6307\u793a\u7ebf\u7a0b\u6c60\u7684\u6700\u5c11\u7ebf\u7a0b\u6570\u91cf\u548cIO\u7ebf\u7a0b\u6570\u91cf\u3002"),(0,a.kt)("p",null,"\u8bbe\u7f6e\u5efa\u8bae\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5f02\u6b65\u5904\u7406\u63a5\u6536\u6570\u636e\uff0c\u6b64\u65f6\u7ebf\u7a0b\u6570\u91cf\u8bbe\u7f6e\u4e3a\u5185\u6838\u7ebf\u7a0b\u5de6\u53f3\u7684\u503c\u5373\u53ef\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u540c\u6b65\u5904\u7406\u63a5\u6536\u6570\u636e\uff0c\u6b64\u65f6\u5e94\u5f53\u8003\u8651\u4e24\u4e2a\u56e0\u7d20\u3002\u8be5\u64cd\u4f5c\u662f\u5426\u4e3a\u8017\u65f6\u64cd\u4f5c\uff0c\u5982\u679c\u662f\uff0c\u5219\u8be5\u503c\u5728\u5141\u8bb8\u8303\u56f4\u5185\uff0c\u5e94\u5f53\u8bbe\u7f6e\u66f4\u53ef\u80fd\u5927\u7684\u503c\u3002\u5982\u679c\u4e0d\u662f\uff0c\u5219\u8bbe\u7f6e\u4e3a\u5185\u6838\u7ebf\u7a0b\u5de6\u53f3\u7684\u503c\u5373\u53ef\u3002")),(0,a.kt)("h4",{id:"setgetdefaultnewid"},"SetGetDefaultNewID"),(0,a.kt)("p",null,"\u914d\u7f6e\u521d\u59cbID\u7684\u5206\u914d\u7b56\u7565"),(0,a.kt)("h4",{id:"setlisteniphosts"},"SetListenIPHosts"),(0,a.kt)("p",null,"\u76d1\u542cIP\u548c\u7aef\u53e3\u53f7\u7ec4\uff0c\u53ef\u4ee5\u4e00\u6b21\u6027\u8bbe\u7f6e\u591a\u4e2a\u5730\u5740\u3002 "),(0,a.kt)("h4",{id:"setservername"},"SetServerName"),(0,a.kt)("p",null,"\u670d\u52a1\u5668\u6807\u8bc6\u540d\u79f0\uff0c\u65e0\u5b9e\u9645\u4f7f\u7528\u610f\u4e49\u3002"),(0,a.kt)("h4",{id:"setbacklogproperty"},"SetBacklogProperty"),(0,a.kt)("p",null,"Tcp\u534a\u8fde\u63a5\u6302\u8d77\u8fde\u63a5\u961f\u5217\u7684\u6700\u5927\u957f\u5ea6\u3002\u9ed8\u8ba4\u4e3a30 "),(0,a.kt)("h4",{id:"setmaxcount"},"SetMaxCount"),(0,a.kt)("p",null,"\u6700\u5927\u53ef\u8fde\u63a5\u6570\uff0c\u9ed8\u8ba4\u4e3a10000 "),(0,a.kt)("h4",{id:"setreceivetype"},"SetReceiveType"),(0,a.kt)("p",null,"\u63a5\u6536\u7c7b\u578b\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"AUTO\uff1a\u81ea\u52a8\u63a5\u6536\u6a21\u5f0f\u3002"),(0,a.kt)("li",{parentName:"ul"},"None\uff1a\u4e0d\u6295\u9012IO\u63a5\u6536\u7533\u8bf7\uff0c\u7528\u6237\u53ef\u901a\u8fc7GetStream\uff0c\u83b7\u53d6\u5230\u6d41\u4ee5\u540e\uff0c\u81ea\u5df1\u5904\u7406\u63a5\u6536\u3002\u6ce8\u610f\uff1a\u8fde\u63a5\u7aef\u4e0d\u4f1a\u611f\u77e5\u4e3b\u52a8\u65ad\u5f00\u3002")),(0,a.kt)("h4",{id:"useplugin"},"UsePlugin"),(0,a.kt)("p",null,"\u662f\u5426\u542f\u7528\u63d2\u4ef6\u3002\u5728\u542f\u7528\u65f6\u6216\u8bb8\u4f1a\u5e26\u6765\u4e00\u70b9\u70b9\u6027\u80fd\u635f\u8017\uff0c\u57fa\u672c\u4e0a\u4e0d\u662f\u5343\u4e07\u6570\u636e\u4ea4\u4e92\u6839\u672c\u4e0d\u503c\u4e00\u63d0\u3002"),(0,a.kt)("h4",{id:"setservicessloption"},"SetServiceSslOption"),(0,a.kt)("p",null,"Ssl\u914d\u7f6e\uff0c\u4e3aNull\u65f6\u5219\u4e0d\u542f\u7528\u3002 "),(0,a.kt)("h4",{id:"usenodelay"},"UseNoDelay"),(0,a.kt)("p",null,"\u8bbe\u7f6eSocket\u7684NoDelay\u5c5e\u6027\uff0c\u9ed8\u8ba4false\u3002 "),(0,a.kt)("h4",{id:"usedelaysender"},"UseDelaySender"),(0,a.kt)("p",null,"\u4f7f\u7528\u5ef6\u8fdf\u53d1\u9001\u3002\u4f17\u6240\u5468\u77e5\uff0ctcp\u6570\u636e\u62a5\u6587\u4e3a\u4e86\u53d1\u9001\u6548\u7387\uff0c\u4f1a\u9ed8\u8ba4\u542f\u7528",(0,a.kt)("strong",{parentName:"p"},"\u5ef6\u8fdf\u7b97\u6cd5"),"\u3002\u4f46\u662f\u8fd9\u79cd\u8bbe\u7f6e\uff0c\u53ea\u80fd\u4e00\u5b9a\u7a0b\u5ea6\u7684\u7f13\u89e3\u5c0f\u6570\u636e\u53d1\u9001\u6548\u7387\u4f4e\u7684\u95ee\u9898\uff0c\u56e0\u4e3a\u5b83\u4e3a\u4e86\u4fdd\u8bc1\u591a\u7ebf\u7a0b\u53d1\u9001\u7684\u6709\u5e8f\u6027\uff0c\u5728send\u51fd\u6570\u4e2d\u8bbe\u7f6e\u4e86\u7ebf\u7a0b\u540c\u6b65\uff0c\u6240\u4ee5\u8bf4\uff0c\u6bcf\u8c03\u7528\u4e00\u6b21send\uff0c\u5b9e\u9645\u4e0a\u90fd\u662f\u5de8\u5927\u7684\u6027\u80fd\u6d88\u8017\uff08\u6b64\u5904\u7528iocp\u53d1\u9001\u4ea6\u7136\uff09\u3002\u6240\u4ee5\uff0c\u8981\u89e3\u51b3\u8be5\u95ee\u9898\uff0c \u6700\u7ec8\u8fd8\u662f\u8981\u5c06\u5c0f\u6570\u636e\uff0c\u7ec4\u5408\u6210\u5927\u6570\u636e\uff0c\u8fd9\u6837\u624d\u80fd\u66f4\u9ad8\u6548\u7387\u7684\u53d1\u9001\u3002\u6240\u4ee5\uff0cDelaySender\u6b63\u662f\u8d1f\u8d23\u6b64\u7c7b\u5de5\u4f5c\u7684\u3002"),(0,a.kt)("p",null,"\u4f7f\u7528DelaySender\uff0c\u4f1a\u4e00\u5b9a\u7a0b\u5ea6\u7684\u964d\u4f4e\u53d1\u9001\u7684\u53ca\u65f6\u6027\uff0c\u4f46\u662f\u964d\u4f4e\u7a0b\u5ea6\u5e76\u4e0d\u9ad8\uff0c\u7b80\u5355\u6765\u8bf4\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u4e00\u4e2a\u5305\u5927\u4e8e512kb\uff0c\u5219\u4e0d\u4f1a\u5ef6\u8fdf\uff0c\u76f4\u63a5\u53d1\u9001\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u53d1\u9001\u7b2c\u4e00\u4e2a\u5305\uff0c\u4e0e\u7b2c\u4e8c\u4e2a\u5305\u7684\u65f6\u95f4\u95f4\u9694\u5c0f\u4e8e\u4e00\u4e2a\u7ebf\u7a0b\u6c60\u7ebf\u7a0b\u8c03\u5ea6\u7684\u65f6\u95f4\uff08\u8fd9\u4e2a\u65f6\u95f4\u6781\u77ed\uff0c\u4e00\u822c\u6765\u8bf4\u4f1a\u572810",(0,a.kt)("strong",{parentName:"li"},"\u5fae\u79d2"),"\u5de6\u53f3\uff09\uff0c\u5219\u4f1a\u5c06\u8fd9\u4e24\u4e2a\u5305\u538b\u7f29\u4e3a\u4e00\u4e2a\u5305\u53d1\u9001\u3002")),(0,a.kt)("h4",{id:"usereuseaddress"},"UseReuseAddress"),(0,a.kt)("p",null,"\u542f\u7528\u7aef\u53e3\u590d\u7528\u3002\u8be5\u914d\u7f6e\u53ef\u5728\u670d\u52a1\u5668\u3001\u6216\u5ba2\u6237\u7aef\u5728\u76d1\u542c\u7aef\u53e3\u65f6\uff0c\u8fd0\u884c\u76d1\u542c\u540c\u4e00\u4e2a\u7aef\u53e3\u3002\u53ef\u4ee5\u4e00\u5b9a\u7a0b\u5ea6\u7f13\u89e3\u7aef\u53e3\u6765\u4e0d\u53ca\u91ca\u653e\u7684\u95ee\u9898\u3002"),(0,a.kt)("h4",{id:"setremoteiphost"},"SetRemoteIPHost"),(0,a.kt)("p",null,"\u94fe\u63a5\u5230\u7684\u8fdc\u7a0bIPHost\uff0c\u652f\u6301\u57df\u540d\u3002\u652f\u6301\u7c7b\u578b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u4f7f\u7528IP&Port\uff0c\u4f20\u5165\u5f62\u5982\uff1a127.0.0.1:7789\u7684\u5b57\u7b26\u4e32\u5373\u53ef\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u4f7f\u7528\u57df\u540d\uff0c\u5fc5\u987b\u5305\u542b\u534f\u8bae\u7c7b\u578b\uff0c\u5f62\u5982\uff1a",(0,a.kt)("a",{parentName:"li",href:"http://baidu.com%E6%88%96%E8%80%85https://baidu.com:80"},"http://baidu.com\u6216\u8005https://baidu.com:80"))),(0,a.kt)("h4",{id:"setclientssloption"},"SetClientSslOption"),(0,a.kt)("p",null,"\u5ba2\u6237\u7aefSsl\u914d\u7f6e\uff0c\u4e3aNull\u65f6\u5219\u4e0d\u542f\u7528\u3002\n\u6ce8\u610f\uff0c\u5f53RemoteIPHost\u4f7f\u7528https\u3001wss\u7684\u57df\u540d\u65f6\uff0c\u8be5\u914d\u7f6e\u4f1a\u4f7f\u7528\u7cfb\u7edf\u9ed8\u8ba4\u914d\u7f6e\u751f\u6548\u3002"),(0,a.kt)("h4",{id:"setkeepalivevalue"},"SetKeepAliveValue"),(0,a.kt)("p",null,"\u4e3aSocket\u8bbe\u7f6e\u7684\u5c5e\u6027\u3002\n\u6ce8\u610f\uff1a\u8be5\u914d\u7f6e\u4ec5\u5728window\u5e73\u53f0\u751f\u6548\u3002"),(0,a.kt)("h4",{id:"setbindiphost"},"SetBindIPHost"),(0,a.kt)("p",null,"\u7ed1\u5b9a\u7aef\u53e3\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u5728UdpSessionBase\u4e2d\u8868\u793a\u672c\u5730\u76d1\u542c\u5730\u5740"),(0,a.kt)("li",{parentName:"ul"},"\u5728TcpClient\u4e2d\u8868\u793a\u56fa\u5b9a\u5ba2\u6237\u7aef\u7aef\u53e3\u53f7\u3002")),(0,a.kt)("p",null,"\u4f7f\u7528DelaySender\uff0c\u4f1a\u4e00\u5b9a\u7a0b\u5ea6\u7684\u964d\u4f4e\u53d1\u9001\u7684\u53ca\u65f6\u6027\uff0c\u4f46\u662f\u964d\u4f4e\u7a0b\u5ea6\u5e76\u4e0d\u9ad8\uff0c\u7b80\u5355\u6765\u8bf4\uff1a"),(0,a.kt)("p",null,"\u5982\u679c\u4e00\u4e2a\u5305\u5927\u4e8e512kb\uff0c\u5219\u4e0d\u4f1a\u5ef6\u8fdf\uff0c\u76f4\u63a5\u53d1\u9001\u3002\n\u5982\u679c\u53d1\u9001\u7b2c\u4e00\u4e2a\u5305\uff0c\u4e0e\u7b2c\u4e8c\u4e2a\u5305\u7684\u65f6\u95f4\u95f4\u9694\u5c0f\u4e8e\u4e00\u4e2a\u7ebf\u7a0b\u6c60\u7ebf\u7a0b\u8c03\u5ea6\u7684\u65f6\u95f4\uff08\u8fd9\u4e2a\u65f6\u95f4\u6781\u77ed\uff0c\u4e00\u822c\u6765\u8bf4\u4f1a\u572810\u5fae\u79d2\u5de6\u53f3\uff09\uff0c\u5219\u4f1a\u5c06\u8fd9\u4e24\u4e2a\u5305\u538b\u7f29\u4e3a\u4e00\u4e2a\u5305\u53d1\u9001\u3002"),(0,a.kt)("h4",{id:"usenodelay-1"},"UseNoDelay"),(0,a.kt)("p",null,"\u8bbe\u7f6eSocket\u7684NoDelay\u5c5e\u6027\uff0c\u9ed8\u8ba4false\u3002"),(0,a.kt)("h4",{id:"usebroadcast"},"UseBroadcast"),(0,a.kt)("p",null,"\u8be5\u503c\u6307\u5b9a\u53ef\u4ee5\u53d1\u9001\u6216\u63a5\u6536\u5e7f\u64ad\u6570\u636e\u5305\u3002"))),(0,a.kt)("h2",{id:"\u516d\u652f\u6301\u63d2\u4ef6"},"\u516d\u3001\u652f\u6301\u63d2\u4ef6"),(0,a.kt)("p",null,"\u652f\u6301",(0,a.kt)("strong",{parentName:"p"},"ITcpPlugin"),"\u63a5\u53e3\uff0c\u6216\u8005\u7ee7\u627f\u81ea",(0,a.kt)("strong",{parentName:"p"},"TcpPluginBase"),"\u7c7b\uff0c\u91cd\u5199\u76f8\u5e94\u65b9\u6cd5\u5373\u53ef\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},"\u63d2\u4ef6\u65b9\u6cd5"),(0,a.kt)("th",{parentName:"tr",align:null},"\u529f\u80fd"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnConnecting"),(0,a.kt)("td",{parentName:"tr",align:null},"\u6b64\u65f6Socket\u5b9e\u9645\u4e0a\u5df2\u7ecf\u5b8c\u6210\u8fde\u63a5\uff0c\u4f46\u662f\u5e76\u6ca1\u6709\u542f\u52a8\u63a5\u6536\uff0c\u7136\u540e\u89e6\u53d1\u3002")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnConnected"),(0,a.kt)("td",{parentName:"tr",align:null},"\u540c\u610f\u8fde\u63a5\uff0c\u4e14\u6210\u529f\u542f\u52a8\u63a5\u6536\u540e\u89e6\u53d1")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnDisconnecting"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5f53\u5ba2\u6237\u7aef\u4e3b\u52a8\u8c03\u7528Close\u65f6\u89e6\u53d1")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnDisconnected"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5f53\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\u540e\u89e6\u53d1")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnReceivingData"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5728\u6536\u5230\u539f\u59cb\u6570\u636e\u65f6\u89e6\u53d1\uff0c\u6240\u6709\u7684\u6570\u636e\u5747\u5728ByteBlock\u91cc\u9762\u3002")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnReceivedData"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5728\u6536\u5230\u9002\u914d\u5668\u6570\u636e\u65f6\u89e6\u53d1\uff0c\u6839\u636e\u9002\u914d\u5668\u7c7b\u578b\uff0c\u6570\u636e\u53ef\u80fd\u5728ByteBlock\u6216\u8005IRequestInfo\u91cc\u9762\u3002")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnSendingData"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5f53\u5373\u5c06\u53d1\u9001\u6570\u636e\u65f6\uff0c\u8c03\u7528\u8be5\u65b9\u6cd5\u5728\u9002\u914d\u5668\u4e4b\u540e\uff0c\u63a5\u4e0b\u6765\u5373\u4f1a\u53d1\u9001\u6570\u636e\u3002")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnIDChanged"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5f53SocketClient\u7684ID\u53d1\u751f\u6539\u53d8\u65f6\u89e6\u53d1\u3002")))),(0,a.kt)("h2",{id:"\u4e03\u521b\u5efatcpservice"},"\u4e03\u3001\u521b\u5efaTcpService"),(0,a.kt)("h3",{id:"71-\u7b80\u5355\u521b\u5efa"},"7.1 \u7b80\u5355\u521b\u5efa"),(0,a.kt)("p",null,"\u76f4\u63a5\u521d\u59cb\u5316TcpService\uff0c\u4f1a\u4f7f\u7528\u9ed8\u8ba4\u7684",(0,a.kt)("strong",{parentName:"p"},"SocketClient"),"\u3002\n\u7b80\u5355\u7684\u5904\u7406\u903b\u8f91\u53ef\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"Connecting"),"\u3001",(0,a.kt)("strong",{parentName:"p"},"Connected"),"\u3001",(0,a.kt)("strong",{parentName:"p"},"Received"),"\u7b49\u59d4\u6258\u76f4\u63a5\u5b9e\u73b0\u3002"),(0,a.kt)("p",null,"\u4ee3\u7801\u5982\u4e0b\uff1a"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpService service = new TcpService();\nservice.Connecting = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u6b63\u5728\u8fde\u63a5\nservice.Connected = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u6210\u529f\u8fde\u63a5\nservice.Disconnected = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\nservice.Received = (client, byteBlock, requestInfo) =>\n{\n //\u4ece\u5ba2\u6237\u7aef\u6536\u5230\u4fe1\u606f\n string mes = Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len);\n client.Logger.Info($"\u5df2\u4ece{client.ID}\u63a5\u6536\u5230\u4fe1\u606f\uff1a{mes}");\n\n client.Send(mes);//\u5c06\u6536\u5230\u7684\u4fe1\u606f\u76f4\u63a5\u8fd4\u56de\u7ed9\u53d1\u9001\u65b9\n\n //client.Send("id",mes);//\u5c06\u6536\u5230\u7684\u4fe1\u606f\u8fd4\u56de\u7ed9\u7279\u5b9aID\u7684\u5ba2\u6237\u7aef\n\n var ids = service.GetIDs();\n foreach (var clientId in ids)//\u5c06\u6536\u5230\u7684\u4fe1\u606f\u8fd4\u56de\u7ed9\u5728\u7ebf\u7684\u6240\u6709\u5ba2\u6237\u7aef\u3002\n {\n if (clientId != client.ID)//\u4e0d\u7ed9\u81ea\u5df1\u53d1\n {\n service.Send(clientId, mes);\n }\n }\n};\n\nservice.Setup(new TouchSocketConfig()//\u8f7d\u5165\u914d\u7f6e \n .SetListenIPHosts(new IPHost[] { new IPHost("tcp://127.0.0.1:7789"), new IPHost(7790) })//\u540c\u65f6\u76d1\u542c\u4e24\u4e2a\u5730\u5740\n .ConfigureContainer(a =>//\u5bb9\u5668\u7684\u914d\u7f6e\u987a\u5e8f\u5e94\u8be5\u5728\u6700\u524d\u9762\n {\n a.AddConsoleLogger();//\u6dfb\u52a0\u4e00\u4e2a\u63a7\u5236\u53f0\u65e5\u5fd7\u6ce8\u5165\uff08\u6ce8\u610f\uff1a\u5728maui\u4e2d\u63a7\u5236\u53f0\u65e5\u5fd7\u4e0d\u53ef\u7528\uff09\n })\n .ConfigurePlugins(a =>\n {\n //a.Add();//\u6b64\u5904\u53ef\u4ee5\u6dfb\u52a0\u63d2\u4ef6\n }))\n .Start();//\u542f\u52a8\n')),(0,a.kt)("h3",{id:"72-\u6cdb\u578b\u521b\u5efa"},"7.2 \u6cdb\u578b\u521b\u5efa"),(0,a.kt)("p",null,"\u901a\u8fc7\u6cdb\u578b\u521b\u5efa\u670d\u52a1\u5668\uff0c\u53ef\u4ee5\u5b9e\u73b0\u5f88\u591a\u6709\u610f\u601d\uff0c\u4e14\u80fd",(0,a.kt)("strong",{parentName:"p"},"\u91cd\u5199"),"\u4e00\u4e9b\u6709\u7528\u7684\u529f\u80fd\u3002\u4e0b\u9762\u5c31\u6f14\u793a\uff0c\u5982\u4f55\u901a\u8fc7\u6cdb\u578b\u521b\u5efa\u670d\u52a1\u5668\u3002"),(0,a.kt)("p",null,"\u4ee3\u7801\u5982\u4e0b\uff1a"),(0,a.kt)("p",null,"\uff081\uff09\u5efa\u7acbSocketClient\u7ee7\u627f\u7c7b\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MySocketClient : SocketClient\n{\n protected override void HandleReceivedData(ByteBlock byteBlock, IRequestInfo requestInfo)\n {\n //\u6b64\u5904\u903b\u8f91\u5355\u7ebf\u7a0b\u5904\u7406\u3002\n\n //\u6b64\u5904\u5904\u7406\u6570\u636e\uff0c\u529f\u80fd\u76f8\u5f53\u4e8eReceived\u59d4\u6258\u3002\n string mes = Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len);\n Console.WriteLine($"\u5df2\u63a5\u6536\u5230\u4fe1\u606f\uff1a{mes}");\n }\n}\n')),(0,a.kt)("p",null,"\uff082\uff09\u5efa\u7acbTcpService\u7ee7\u627f\u7c7b\u3002\u5b9e\u9645\u4e0a\u5982\u679c\u4e1a\u52a1\u4e0d\u6d89\u53ca\u670d\u52a1\u5668\u914d\u7f6e\u7684\u8bdd\uff0c\u53ef\u4ee5\u7701\u7565\u8be5\u6b65\u9aa4\uff0c\u4f7f\u7528",(0,a.kt)("strong",{parentName:"p"},"TcpService\u7684\u6cdb\u578b"),"\u76f4\u63a5\u521b\u5efa\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public class MyService : TcpService\n{\n protected override void LoadConfig(TouchSocketConfig config)\n {\n //\u6b64\u5904\u52a0\u8f7d\u914d\u7f6e\uff0c\u7528\u6237\u53ef\u4ee5\u4ece\u914d\u7f6e\u4e2d\u83b7\u53d6\u914d\u7f6e\u9879\u3002\n base.LoadConfig(config);\n }\n\n protected override void OnConnecting(MySocketClient socketClient, ClientOperationEventArgs e)\n {\n //\u6b64\u5904\u903b\u8f91\u4f1a\u591a\u7ebf\u7a0b\u5904\u7406\u3002\n\n \n //e.ID:\u5bf9\u65b0\u8fde\u63a5\u7684\u5ba2\u6237\u7aef\u8fdb\u884cID\u521d\u59cb\u5316\uff0c\u4f8b\u5982\u53ef\u4ee5\u8bbe\u7f6e\u4e3a\u5176IP\u5730\u5740\u3002\n //e.IsPermitOperation:\u6307\u793a\u662f\u5426\u5141\u8bb8\u8be5\u5ba2\u6237\u7aef\u94fe\u63a5\u3002\n base.OnConnecting(socketClient, e);\n }\n}\n\n")),(0,a.kt)("p",null,"\uff083\uff09\u521b\u5efa\u670d\u52a1\u5668\uff08\u5305\u542bMyService\uff09\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'MyService service = new MyService();\nservice.Connecting = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u6b63\u5728\u8fde\u63a5\nservice.Connected = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u6210\u529f\u8fde\u63a5\nservice.Disconnected = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\n\nservice.Setup(new TouchSocketConfig()//\u8f7d\u5165\u914d\u7f6e \n .SetListenIPHosts(new IPHost[] { new IPHost("tcp://127.0.0.1:7789"), new IPHost(7790) })//\u540c\u65f6\u76d1\u542c\u4e24\u4e2a\u5730\u5740\n .ConfigureContainer(a =>//\u5bb9\u5668\u7684\u914d\u7f6e\u987a\u5e8f\u5e94\u8be5\u5728\u6700\u524d\u9762\n {\n a.UseConsoleLogger();//\u6dfb\u52a0\u4e00\u4e2a\u63a7\u5236\u53f0\u65e5\u5fd7\u6ce8\u5165\uff08\u6ce8\u610f\uff1a\u5728maui\u4e2d\u63a7\u5236\u53f0\u65e5\u5fd7\u4e0d\u53ef\u7528\uff09\n })\n .ConfigurePlugins(a =>\n {\n //a.Add();//\u6b64\u5904\u53ef\u4ee5\u6dfb\u52a0\u63d2\u4ef6\n }))\n .Start();//\u542f\u52a8\n')),(0,a.kt)("p",null,"\uff084\uff09\u521b\u5efa\u670d\u52a1\u5668\uff08\u4e0d\u542bMyService\uff09\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpService service = new TcpService();\nservice.Connecting = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u6b63\u5728\u8fde\u63a5\nservice.Connected = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u6210\u529f\u8fde\u63a5\nservice.Disconnected = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\n\nservice.Setup(new TouchSocketConfig()//\u8f7d\u5165\u914d\u7f6e \n .SetListenIPHosts(new IPHost[] { new IPHost("tcp://127.0.0.1:7789"), new IPHost(7790) })//\u540c\u65f6\u76d1\u542c\u4e24\u4e2a\u5730\u5740\n .ConfigureContainer(a =>//\u5bb9\u5668\u7684\u914d\u7f6e\u987a\u5e8f\u5e94\u8be5\u5728\u6700\u524d\u9762\n {\n a.UseConsoleLogger();//\u6dfb\u52a0\u4e00\u4e2a\u63a7\u5236\u53f0\u65e5\u5fd7\u6ce8\u5165\uff08\u6ce8\u610f\uff1a\u5728maui\u4e2d\u63a7\u5236\u53f0\u65e5\u5fd7\u4e0d\u53ef\u7528\uff09\n })\n .ConfigurePlugins(a =>\n {\n //a.Add();//\u6b64\u5904\u53ef\u4ee5\u6dfb\u52a0\u63d2\u4ef6\n }))\n .Start();//\u542f\u52a8\n')),(0,a.kt)("admonition",{title:"\u5efa\u8bae",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u7531\u4e0a\u8ff0\u4ee3\u7801\u53ef\u4ee5\u770b\u51fa\uff0c\u901a\u8fc7\u7ee7\u627f\uff0c\u53ef\u4ee5\u66f4\u52a0\u7075\u6d3b\u7684\u5b9e\u73b0\u6269\u5c55\u3002\u4f46\u5b9e\u9645\u4e0a\uff0c\u5f88\u591a\u4e1a\u52a1\u6211\u4eec\u5e0c\u671b\u5927\u5bb6\u80fd\u901a\u8fc7\u63d2\u4ef6\u5b8c\u6210\u3002")),(0,a.kt)("h2",{id:"\u516b\u63a5\u6536\u6570\u636e"},"\u516b\u3001\u63a5\u6536\u6570\u636e"),(0,a.kt)("p",null,"\u5728TcpService\u4e2d\uff0c\u63a5\u6536\u6570\u636e\u7684\u65b9\u5f0f\u6709\u5f88\u591a\u79cd\u3002\u591a\u79cd\u65b9\u5f0f\u53ef\u4ee5\u7ec4\u5408\u4f7f\u7528\u3002"),(0,a.kt)("h3",{id:"81-received\u59d4\u6258\u5904\u7406"},"8.1 Received\u59d4\u6258\u5904\u7406"),(0,a.kt)("p",null,"\u5f53\u4f7f\u7528TcpService\uff08\u975e\u6cdb\u578b\uff09\u521b\u5efa\u670d\u52a1\u5668\u65f6\uff0c\u5185\u90e8\u5df2\u7ecf\u5b9a\u4e49\u597d\u4e86\u4e00\u4e2a\u5916\u7f6e\u59d4\u6258Received\uff0c\u53ef\u4ee5\u901a\u8fc7\u8be5\u59d4\u6258\u76f4\u63a5\u63a5\u6536\u6570\u636e\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpService service = new TcpService();\nservice.Received = (client, byteBlock, requestInfo) =>\n{\n //\u4ece\u5ba2\u6237\u7aef\u6536\u5230\u4fe1\u606f\n string mes = Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len);\n client.Logger.Info($"\u5df2\u4ece{client.ID}\u63a5\u6536\u5230\u4fe1\u606f\uff1a{mes}");\n};\n\nservice.Setup(new TouchSocketConfig()//\u8f7d\u5165\u914d\u7f6e \n .SetListenIPHosts(new IPHost[] { new IPHost("tcp://127.0.0.1:7789"), new IPHost(7790) })//\u540c\u65f6\u76d1\u542c\u4e24\u4e2a\u5730\u5740\n .ConfigureContainer(a =>//\u5bb9\u5668\u7684\u914d\u7f6e\u987a\u5e8f\u5e94\u8be5\u5728\u6700\u524d\u9762\n {\n a.UseConsoleLogger();//\u6dfb\u52a0\u4e00\u4e2a\u63a7\u5236\u53f0\u65e5\u5fd7\u6ce8\u5165\uff08\u6ce8\u610f\uff1a\u5728maui\u4e2d\u63a7\u5236\u53f0\u65e5\u5fd7\u4e0d\u53ef\u7528\uff09\n }))\n .Start();//\u542f\u52a8\n')),(0,a.kt)("h3",{id:"82-\u91cd\u5199socketclient\u5904\u7406"},"8.2 \u91cd\u5199SocketClient\u5904\u7406"),(0,a.kt)("p",null,"\u6b63\u59826.2\u6240\u793a\uff0c\u53ef\u4ee5\u76f4\u63a5\u5728MySocketClient\u7684\u91cd\u5199",(0,a.kt)("strong",{parentName:"p"},"HandleReceivedData"),"\u4e2d\u76f4\u63a5\u5904\u7406\u6570\u636e\u3002"),(0,a.kt)("h3",{id:"83-\u63d2\u4ef6\u5904\u7406-\u63a8\u8350"},"8.3 \u63d2\u4ef6\u5904\u7406 ",(0,a.kt)(r.Z,{mdxType:"Tag"},"\u63a8\u8350")),(0,a.kt)("p",null,"\u6309\u7167TouchSocket\u7684\u8bbe\u8ba1\u7406\u5ff5\uff0c\u4f7f\u7528\u63d2\u4ef6\u5904\u7406\u6570\u636e\uff0c\u662f\u4e00\u9879\u975e\u5e38\u7b80\u5355\uff0c\u4e14\u9ad8\u5ea6\u89e3\u8026\u7684\u65b9\u5f0f\u3002\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u670d\u52a1\u5668\u914d\u7f6e\u542f\u7528\u63d2\u4ef6\uff08UsePlugin\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u65b0\u5efa\u63d2\u4ef6\u7c7b"),(0,a.kt)("li",{parentName:"ol"},"\u6dfb\u52a0\u63d2\u4ef6")),(0,a.kt)("p",null,"\u4ee3\u7801\u5982\u4e0b\uff1a"),(0,a.kt)("p",null,"\uff081\uff09\u58f0\u660e\u63d2\u4ef6"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public class MyPlugin : TcpPluginBase\n{\n public MyPlugin()\n {\n this.Order = 0;//\u6b64\u503c\u8868\u793a\u63d2\u4ef6\u7684\u6267\u884c\u987a\u5e8f\uff0c\u5f53\u591a\u4e2a\u63d2\u4ef6\u5e76\u5b58\u65f6\uff0c\u8be5\u503c\u8d8a\u5927\uff0c\u8d8a\u5728\u524d\u6267\u884c\u3002\n }\n \n protected override void OnReceivedData(SocketClient client, ReceivedDataEventArgs e)\n {\n //\u8fd9\u91cc\u5904\u7406\u6570\u636e\u63a5\u6536\n //\u6839\u636e\u9002\u914d\u5668\u7c7b\u578b\uff0ce.ByteBlock\u4e0ee.RequestInfo\u4f1a\u5448\u73b0\u4e0d\u540c\u7684\u503c\uff0c\u5177\u4f53\u770b\u6587\u6863=\u300b\u9002\u914d\u5668\u90e8\u5206\u3002\n ByteBlock byteBlock = e.ByteBlock;\n IRequestInfo requestInfo = e.RequestInfo;\n\n //e.Handled = true;//\u8868\u793a\u8be5\u6570\u636e\u5df2\u7ecf\u88ab\u672c\u63d2\u4ef6\u5904\u7406\uff0c\u65e0\u9700\u518d\u6295\u9012\u5230\u5176\u4ed6\u63d2\u4ef6\u3002\n base.OnReceivedData(client, e);\n }\n}\n")),(0,a.kt)("p",null,"\uff082\uff09\u521b\u5efa\u4f7f\u7528\u63d2\u4ef6\u5904\u7406\u7684\u670d\u52a1\u5668"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpService service = new TcpService();\nservice.Setup(new TouchSocketConfig()\n .SetListenIPHosts(new IPHost[] { new IPHost("127.0.0.1:7789"), new IPHost(7790) })\n .UsePlugin()\n .ConfigureContainer(a=>\n {\n a.UseConsoleLogger();\n })\n .ConfigurePlugins(a => \n {\n a.Add();\n }))\n .Start();\n')),(0,a.kt)("h2",{id:"\u4e5daspnetcore\u4e2d\u521b\u5efa"},"\u4e5d\u3001AspNetCore\u4e2d\u521b\u5efa"),(0,a.kt)("p",null,"\u9996\u5148\u5efa\u8bae\u5b89\u88c5",(0,a.kt)("inlineCode",{parentName:"p"},"TouchSocket.AspNetCore"),"\u6216\u8005",(0,a.kt)("inlineCode",{parentName:"p"},"TouchSocketPro.AspNetCore"),"\uff0c\u56e0\u4e3a\u8fd9\u4e2a\u91cc\u9762\u6709\u5f88\u591a\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u7684\u6ce8\u5165\u9879\u3002"),(0,a.kt)("admonition",{title:"\u5efa\u8bae",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u5728\u5b89\u88c5",(0,a.kt)("inlineCode",{parentName:"p"},"TouchSocket.AspNetCore"),"\u6216\u8005",(0,a.kt)("inlineCode",{parentName:"p"},"TouchSocketPro.AspNetCore"),"\u7684\u540c\u65f6\uff0c\u6700\u597d\u4e5f\u5b89\u88c5",(0,a.kt)("inlineCode",{parentName:"p"},"TouchSocket"),"\u6216\u8005",(0,a.kt)("inlineCode",{parentName:"p"},"TouchSocketPro"),"\u3002\u8fd9\u6837\u66f4\u65b0\u4e5f\u5373\u65f6\u4e00\u4e9b\u3002")),(0,a.kt)("p",null,"\u5728AspNetCore\u4e2d\u4f7f\u7528TcpService\uff0c",(0,a.kt)("strong",{parentName:"p"},"\u4e0d\u5e94\u8be5"),"\u50cf\u666e\u901a\u7aef\u4e00\u6837\uff0c\u8ba2\u9605Received\u3002\u5e94\u8be5\u662f\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u63d2\u4ef6"),"\uff0c",(0,a.kt)("strong",{parentName:"p"},"\u6ce8\u5165"),"\u7b49\u65b9\u5f0f\u5b9e\u73b0\u3002\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u6ce8\u5165TcpService\uff0c\u5e76\u505a\u597d\u914d\u7f6e\uff08\u548c\u5e38\u89c4\u670d\u52a1\u5668\u914d\u7f6e\u4e00\u6837\uff09\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u65b0\u5efa\u63d2\u4ef6\uff0c\u5904\u7406\u6536\u5230\u7684\u6570\u636e\u3002")),(0,a.kt)("p",null,"\u4ee3\u7801\u5982\u4e0b\uff1a"),(0,a.kt)("p",null,"\uff081\uff09\u58f0\u660e\u63d2\u4ef6"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyTcpPlugin : TcpPluginBase\n{\n private ILogger m_logger;\n\n public MyTcpPlugin(ILogger logger)\n {\n this.m_logger = logger;\n }\n\n protected override void OnConnected(SocketClient client, TouchSocketEventArgs e)\n {\n m_logger.LogInformation("\u5ba2\u6237\u7aef\u8fde\u63a5");\n base.OnConnected(client, e);\n }\n\n protected override void OnReceivedData(SocketClient client, ReceivedDataEventArgs e)\n {\n //\u8fd9\u91cc\u5904\u7406\u6570\u636e\u63a5\u6536\n //\u6839\u636e\u9002\u914d\u5668\u7c7b\u578b\uff0ce.ByteBlock\u4e0ee.RequestInfo\u4f1a\u5448\u73b0\u4e0d\u540c\u7684\u503c\uff0c\u5177\u4f53\u770b\u6587\u6863=\u300b\u9002\u914d\u5668\u90e8\u5206\u3002\n ByteBlock byteBlock = e.ByteBlock;\n IRequestInfo requestInfo = e.RequestInfo;\n }\n}\n')),(0,a.kt)("p",null,"\uff082\uff09\u6ce8\u5165\u670d\u52a1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public void ConfigureServices(IServiceCollection services)\n{\n var tcpService = services.AddTcpService(config =>\n {\n config.SetListenIPHosts(new IPHost[] { new IPHost(7789) })\n .UsePlugin()\n .UseAspNetCoreContainer(services)\n .ConfigurePlugins(a =>\n {\n a.Add();//\u6b64\u63d2\u4ef6\u5c31\u53ef\u4ee5\u5904\u7406\u63a5\u6536\u6570\u636e\n });\n });\n}\n\n")),(0,a.kt)("p",null,"\u7136\u540e\u5728\u4efb\u610f\u5730\u65b9\uff0c\u4e5f\u53ef\u83b7\u5f97\u670d\u52a1\u3002"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"image.png",src:n(1610).Z,width:"1170",height:"480"})),(0,a.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u6b64\u65f6\uff0cTcpService\u4e0e\u6574\u4e2aAspNetCore\u662f\u5171\u4eabIOC\u5bb9\u5668\u7684\u3002\u5373\uff1aTcpService\u4e2d\u7684\u4efb\u4f55\u5730\u65b9\uff08\u4f8b\u5982\uff1a\u63d2\u4ef6\uff09\u4e5f\u80fd\u83b7\u5f97AspNetCore\u5df2\u6ce8\u518c\u7684\u670d\u52a1\u3002")),(0,a.kt)("h2",{id:"\u5341\u53d1\u9001\u6570\u636e"},"\u5341\u3001\u53d1\u9001\u6570\u636e"),(0,a.kt)("p",null,"\u6309\u7167\u67b6\u6784\u56fe\uff0c\u6bcf\u4e2a\u5ba2\u6237\u7aef\u6210\u529f\u8fde\u63a5\u540e\uff0c",(0,a.kt)("strong",{parentName:"p"},"\u670d\u52a1\u5668"),"\u90fd\u4f1a\u521b\u5efa\u4e00\u4e2a\u6d3e\u751f\u81ea",(0,a.kt)("strong",{parentName:"p"},"SocketClient"),"\u7684\u5b9e\u4f8b\uff0c\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u8be5\u5b9e\u4f8b"),"\u5373\u53ef\u5c06\u6570\u636e\u53d1\u9001\u81f3",(0,a.kt)("strong",{parentName:"p"},"\u5ba2\u6237\u7aef"),"\u3002"),(0,a.kt)("h3",{id:"101-\u5982\u4f55\u83b7\u53d6socketclient"},"10.1 \u5982\u4f55\u83b7\u53d6SocketClient\uff1f"),(0,a.kt)("p",null,"\uff081\uff09\u76f4\u63a5\u83b7\u53d6\u6240\u6709\u5728\u7ebf\u5ba2\u6237\u7aef"),(0,a.kt)("p",null,"\u901a\u8fc7",(0,a.kt)("inlineCode",{parentName:"p"},"service.GetClients"),"\u65b9\u6cd5\uff0c\u83b7\u53d6\u5f53\u524d\u5728\u7ebf\u7684\u6240\u6709\u5ba2\u6237\u7aef\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"SocketClient[] socketClients = service.GetClients();\n")),(0,a.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"\u7531\u4e8eSocketClient\u7684\u751f\u547d\u5468\u671f\u662f\u7531\u6846\u67b6\u63a7\u5236\u7684\uff0c\u6240\u4ee5\u6700\u597d\u5c3d\u91cf\u4e0d\u8981\u76f4\u63a5\u5f15\u7528\u8be5\u5b9e\u4f8b\uff0c\u53ef\u4ee5\u5f15\u7528SocketClient.ID\uff0c\u7136\u540e\u518d\u901a\u8fc7\u670d\u52a1\u5668\u67e5\u627e\u3002")),(0,a.kt)("p",null,"\uff082\uff09\u901a\u8fc7ID\u83b7\u53d6"),(0,a.kt)("p",null,"\u5148\u8c03\u7528",(0,a.kt)("inlineCode",{parentName:"p"},"service.GetIDs"),"\u65b9\u6cd5\uff0c\u83b7\u53d6\u5f53\u524d\u5728\u7ebf\u7684\u6240\u6709\u5ba2\u6237\u7aef\u7684ID\uff0c\u7136\u540e\u9009\u62e9\u9700\u8981\u7684ID\uff0c\u901a\u8fc7TryGetSocketClient\u65b9\u6cd5\uff0c\u83b7\u53d6\u5230\u60f3\u8981\u7684\u5ba2\u6237\u7aef\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"string[] ids = service.GetIDs();\nif (service.TryGetSocketClient(ids[0], out SocketClient socketClient))\n{\n}\n")),(0,a.kt)("h3",{id:"102-\u53d1\u9001"},"10.2 \u53d1\u9001"),(0,a.kt)("p",null,"\u3010\u540c\u6b65\u53d1\u9001\u3011"),(0,a.kt)("p",null,"SocketClient\u5df2\u7ecf\u5185\u7f6e\u4e86\u4e09\u79cd\u540c\u6b65\u53d1\u9001\u65b9\u6cd5\uff0c\u76f4\u63a5\u8c03\u7528\u5c31\u53ef\u4ee5\u53d1\u9001\uff0c\u5982\u679c\u53d1\u9001\u5931\u8d25\uff0c\u5219\u4f1a\u7acb\u5373\u629b\u51fa\u5f02\u5e38\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public virtual void Send(byte[] buffer);\npublic virtual void Send(ByteBlock byteBlock);\npublic virtual void Send(byte[] buffer, int offset, int length);\n")),(0,a.kt)("p",null,"\u3010\u5f02\u6b65\u53d1\u9001\u3011"),(0,a.kt)("p",null,"TcpClient\u5df2\u7ecf\u5185\u7f6e\u4e86\u4e09\u79cd\u5f02\u6b65\u53d1\u9001\u65b9\u6cd5\uff0c\u76f4\u63a5\u8c03\u7528\u5c31\u53ef\u4ee5\u53d1\u9001\u3002\u5982\u679c\u53d1\u9001\u5931\u8d25\uff0cawait\u5c31\u4f1a\u89e6\u53d1\u5f02\u5e38\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public virtual Task SendAsync(byte[] buffer);\npublic virtual Task SendAsync(ByteBlock byteBlock);\npublic virtual Task SendAsync(byte[] buffer, int offset, int length);\n")),(0,a.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u901a\u8fc7\u4e0a\u8ff0\u65b9\u6cd5\u53d1\u9001\u7684\u6570\u636e\uff0c\u90fd\u4f1a\u7ecf\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u9002\u914d\u5668"),"\uff0c\u5982\u679c\u60f3\u8981\u76f4\u63a5\u53d1\u9001\uff0c\u8bf7\u4f7f\u7528",(0,a.kt)("strong",{parentName:"p"},"DefaultSend"),"\u3002")),(0,a.kt)("h3",{id:"103-\u901a\u8fc7tcpservice\u53d1\u9001"},"10.3 \u901a\u8fc7TcpService\u53d1\u9001"),(0,a.kt)("p",null,"\u901a\u8fc7ID\u53d1\u9001\u6570\u636e\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public virtual void Send(string id, ByteBlock byteBlock);\npublic virtual void Send(string id, byte[] buffer, int offset, int length);\npublic virtual void Send(string id, byte[] buffer);\npublic virtual Task SendAsync(string id, ByteBlock byteBlock);\npublic virtual Task SendAsync(string id, byte[] buffer, int offset, int length);\npublic virtual Task SendAsync(string id, byte[] buffer);\n")))}d.isMDXComponent=!0},9544:(e,t,n)=>{n.d(t,{Z:()=>l});const l=n.p+"assets/images/createtcpservice-2-005d50c69d09a71156030539fb5bf7f6.png"},1610:(e,t,n)=>{n.d(t,{Z:()=>l});const l=n.p+"assets/images/createtcpservice-1-f7dd6a219c3c152c78ccf0cf84066439.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[1586],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var l=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 r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=l.createContext({}),s=function(e){var t=l.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return l.createElement(o.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},d=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,o=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(n),k=a,v=d["".concat(o,".").concat(k)]||d[k]||u[k]||r;return n?l.createElement(v,i(i({ref:t},p),{},{components:n})):l.createElement(v,i({ref:t},p))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=d;var c={};for(var o in t)hasOwnProperty.call(t,o)&&(c[o]=t[o]);c.originalType=e,c.mdxType="string"==typeof e?e:a,i[1]=c;for(var s=2;s{n.d(t,{Z:()=>F});var l=n(7294),a=n(7462);const r=(e,t,n)=>e?"string"==typeof e?e:e[t]||n:n,i={display:"block"},c=e=>{let{size:t,color:n,style:c,...o}=e;const s=c?{...i,...c}:i;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:s},o),l.createElement("path",{d:"M856.4 292.8c-63.3-63.6-126.6-127.1-190.2-190.3-15.3-15.2-32.7-16.1-48.1-0.8-64.3 63.6-128.1 127.6-191.8 191.9-14 14.2-16.3 31.6-1.7 46 14.8 14.7 31.5 10.6 46.1-2.7 5.1-4.6 9.8-9.7 14.7-14.7 39.2-39.7 78.5-79.5 122.8-124.4 0 170 3 332.2-1.1 494-2.4 96.4-91.2 174.6-187.4 176.6-110.6 2.3-198.6-84.4-199-197.4-0.6-136.3-0.2-272.6-0.1-408.9 0-21.8-7.9-37.4-31.2-39.9-18.9-2-33.2 13.2-33.1 37.5 0 145.8-3.4 291.7 2.4 437.2 6 152.1 160.4 263.5 309.5 230.5C591.8 900 672.8 797.2 673.6 664.6c0.8-144 0.2-288.1 0.2-432.1v-33.3c11.2 10.2 17.6 15.4 23.3 21.3 38.5 38.4 76.7 77 115.3 115.2 14.8 14.6 32.2 19.2 47.8 2.9 13.8-14.8 10.3-31.7-3.8-45.8z",fill:r(n,0,"#333333")}))};c.defaultProps={size:18};const o=c,s={display:"block"},p=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...s,...i}:s;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M143.872 768a51.2 51.2 0 0 1-15.36-2.56 51.2 51.2 0 0 1-35.328-51.2V283.136a148.992 148.992 0 0 1 141.824-153.6h450.56a148.992 148.992 0 0 1 141.824 153.6V512a148.992 148.992 0 0 1-141.824 153.6H244.224l-60.928 80.896a51.2 51.2 0 0 1-39.424 21.504zM235.008 180.224a97.792 97.792 0 0 0-90.624 102.4v430.592L218.624 614.4h466.944a97.792 97.792 0 0 0 90.624-102.4V283.136a97.792 97.792 0 0 0-90.624-102.4z",fill:r(n,0,"#333333")}),l.createElement("path",{d:"M880.128 875.52a51.2 51.2 0 0 1-39.424-20.48l-60.928-80.896h-243.2a25.6 25.6 0 0 1 0-51.2h268.8l76.288 102.4v-295.936a25.6 25.6 0 0 1 25.6-25.6 25.6 25.6 0 0 1 25.6 25.6v293.888a51.2 51.2 0 0 1-51.2 51.2z",fill:r(n,1,"#333333")}))};p.defaultProps={size:18};const u=p,d={display:"block"},k=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...d,...i}:d;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M223.425605 449.2744l161.632237 0 0 253.65714c0 16.954137 13.745049 30.699186 30.699186 30.699186 16.95516 0 30.699186-13.745049 30.699186-30.699186l0-284.356326c0-16.95516-13.744026-30.699186-30.699186-30.699186L291.035446 387.876028l217.23665-248.51605L733.039255 387.580293 607.104031 387.580293c-16.954137 0-30.699186 13.745049-30.699186 30.699186l0 284.652062c0 16.954137 13.745049 30.699186 30.699186 30.699186s30.699186-13.745049 30.699186-30.699186L637.803217 448.978664l164.448376 0c12.140505 0 23.140023-7.154957 28.063149-18.251689 4.922103-11.097756 2.841721-24.053835-5.307889-33.05279L530.62315 72.570829c-5.881964-6.495948-14.273075-10.134825-23.024389-10.091846-8.763594 0.076748-17.076934 3.895727-22.844288 10.494005L200.312188 398.371056c-7.92653 9.067516-9.818623 21.931498-4.839215 32.896224S211.383338 449.2744 223.425605 449.2744z",fill:r(n,0,"#333333")}),l.createElement("path",{d:"M222.354204 829.113381l581.732178 0c16.954137 0 30.699186-13.745049 30.699186-30.699186s-13.745049-30.699186-30.699186-30.699186L222.354204 767.715009c-16.954137 0-30.699186 13.745049-30.699186 30.699186S205.400067 829.113381 222.354204 829.113381z",fill:r(n,1,"#333333")}),l.createElement("path",{d:"M804.086381 896.729361 222.354204 896.729361c-16.954137 0-30.699186 13.745049-30.699186 30.699186s13.745049 30.699186 30.699186 30.699186l581.732178 0c16.954137 0 30.699186-13.745049 30.699186-30.699186S821.041542 896.729361 804.086381 896.729361z",fill:r(n,2,"#333333")}))};k.defaultProps={size:18};const v=k,g={display:"block"},m=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...g,...i}:g;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M380.15463648 874.54223633c0 18.12744166-14.83154297 32.95898463-32.95898463 32.95898463s-32.95898463-14.83154297-32.95898462-32.95898463V228.9152832L172.71078883 370.86962865a33.04467773 33.04467773 0 0 1-46.60400416 0 33.04467773 33.04467773 0 0 1 0-46.6040034l197.55615234-198.14941406A32.76782227 32.76782227 0 0 1 347.0967749 116.52514674c0.03295924 0 0.06591772-0.03295924 0.09887695-0.03295924 1.54907201 0 2.90039088 0.69213867 4.41650366 0.88989258 2.66967773 0.39550781 5.40527318 0.59326172 7.94311548 1.61499049 12.03002904 4.94384766 20.59936549 16.71020508 20.59936549 30.45410156v725.0910642z m320.15698192 23.34155248a32.85351537 32.85351537 0 0 1-23.43383789 9.59106445c-0.03295924 0-0.06591772 0.03295924-0.09887696 0.03295924-1.54907201 0-2.90039088-0.69213867-4.41650365-0.92285182-2.70263697-0.36254857-5.40527318-0.56030248-7.94311549-1.61498972-12.03002904-4.91088842-20.59936549-16.67724584-20.59936473-30.42114309V149.45776367c0-18.12744166 14.83154297-32.95898463 32.95898387-32.95898463s32.95898463 14.83154297 32.95898463 32.95898463v645.60058619l141.52587916-141.92138697c12.81445313-12.82104467 33.81591797-12.82104467 46.63037109 0 12.78808619 12.81445313 12.78808619 33.77636719 0 46.60400416L700.3116184 897.88378881z",fill:r(n,0,"#333333")}))};m.defaultProps={size:18};const h=m,y={display:"block"},f=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...y,...i}:y;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1172 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M870.0416 250.4704a38.4 38.4 0 0 0-8.96 53.5552c13.056 18.2784 24.4224 37.8368 33.7408 58.112a38.4512 38.4512 0 0 0 50.944 18.8928 38.4512 38.4512 0 0 0 18.8416-50.944 436.0192 436.0192 0 0 0-40.96-70.6048 38.3488 38.3488 0 0 0-53.6064-9.0112zM181.4528 566.016a35.9936 35.9936 0 0 0 25.5488-10.5984L351.7952 410.624a36.096 36.096 0 1 0-51.0976-51.0976L217.6 442.5728C250.0096 278.1184 395.264 153.6 569.1392 153.6c50.7904 0 99.8912 10.3936 145.92 30.9248a38.4 38.4 0 1 0 31.232-70.0928 431.36 431.36 0 0 0-177.152-37.632c-214.6816 0-393.1136 156.416-428.4416 361.216L62.1568 359.4752a36.1984 36.1984 0 0 0-51.0976 51.0976l144.8448 144.7936a36.0448 36.0448 0 0 0 25.5488 10.6496zM978.5344 463.104a36.1984 36.1984 0 0 0-51.0976 0l-144.8448 144.7936a36.096 36.096 0 1 0 51.0976 51.0976l88.6272-88.576C894.3104 740.2496 746.8032 870.4 569.1392 870.4a357.7856 357.7856 0 0 1-325.2736-207.7184 38.4 38.4 0 1 0-69.7344 32.3072 434.3808 434.3808 0 0 0 394.9568 252.2112c215.1936 0 393.984-157.184 428.6464-362.7008l74.496 74.496a35.9936 35.9936 0 0 0 51.0976 0 36.096 36.096 0 0 0 0-51.0976l-144.7936-144.7936z",fill:r(n,0,"#333333")}))};f.defaultProps={size:18};const S=f,C={display:"block"},N=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...C,...i}:C;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M302 332a30 30 0 1 1 0-60h420a30 30 0 0 1 0 60H302zM302 542a30 30 0 0 1 0-60h420a30 30 0 0 1 0 60H302zM302 752a30 30 0 0 1 0-60h120a30 30 0 0 1 0 60H302z",fill:r(n,0,"#333333")}),l.createElement("path",{d:"M789.47 784.1a30 30 0 0 1 39.36 45.3l-144.24 125.25a30 30 0 0 1-19.68 7.35H214.85C163.4 962 122 919.46 122 867.38V156.62C122 104.54 163.4 62 214.85 62h594.3C860.6 62 902 104.54 902 156.62v529.05a30 30 0 1 1-60 0V156.62C842 137.3 827.09 122 809.15 122H214.85C196.91 122 182 137.3 182 156.62v710.76C182 886.7 196.91 902 214.85 902h438.84l135.78-117.9z",fill:r(n,1,"#333333")}),l.createElement("path",{d:"M692 931.19a30 30 0 1 1-60 0v-174.6C632 704.57 673.4 662 724.85 662h147.78a30 30 0 0 1 0 60h-147.78c-17.94 0-32.85 15.3-32.85 34.62v174.6z",fill:r(n,2,"#333333")}))};N.defaultProps={size:18};const b=N,P={display:"block"},T=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...P,...i}:P;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M512 883.2A371.2 371.2 0 1 0 140.8 512 371.2 371.2 0 0 0 512 883.2z m0 64a435.2 435.2 0 1 1 435.2-435.2 435.2 435.2 0 0 1-435.2 435.2z",fill:r(n,0,"#333333")}),l.createElement("path",{d:"M557.056 512l122.368 122.368a31.744 31.744 0 1 1-45.056 45.056L512 557.056l-122.368 122.368a31.744 31.744 0 1 1-45.056-45.056L466.944 512 344.576 389.632a31.744 31.744 0 1 1 45.056-45.056L512 466.944l122.368-122.368a31.744 31.744 0 1 1 45.056 45.056z",fill:r(n,1,"#333333")}))};T.defaultProps={size:18};const I=T,w={display:"block"},B=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...w,...i}:w;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5 0.2 13 0.7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2c41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7 0.4-6.4 0.7-12.8 0.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3-20.1 11.8-42 20-64.9 24.3V484c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v396.5c-22.9-4.3-44.8-12.5-64.9-24.3-30.3-17.7-55.6-43-73.3-73.3C317.7 752 308 716.8 308 680V412h408v268z",fill:r(n,0,"#333333")}),l.createElement("path",{d:"M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z",fill:r(n,1,"#333333")}))};B.defaultProps={size:18};const z=B,E={display:"block"},x=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...E,...i}:E;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M512 71.68c-242.688 0-440.32 197.632-440.32 440.32s197.632 440.32 440.32 440.32 440.32-197.632 440.32-440.32-197.632-440.32-440.32-440.32z m0 819.2c-208.896 0-378.88-169.984-378.88-378.88s169.984-378.88 378.88-378.88 378.88 169.984 378.88 378.88-169.984 378.88-378.88 378.88z",fill:r(n,0,"#333333")}),l.createElement("path",{d:"M542.72 261.12H481.28v220.16H261.12v61.44h220.16v220.16h61.44v-220.16h220.16V481.28h-220.16z",fill:r(n,1,"#333333")}))};x.defaultProps={size:18};const M=x,D={display:"block"},O=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...D,...i}:D;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M384 896h-64v-70.4c0-15.2-10.4-28-24.8-31.2C159.2 768 64 644.8 64 496v-32h64v32c0 118.4 73.6 215.2 179.2 236 44.8 8.8 76.8 48 76.8 94.4v69.6zM704 896h-64v-70.4c0-45.6 32-85.6 76.8-94.4C822.4 711.2 896 614.4 896 496v-32h64v32c0 148.8-95.2 272-231.2 298.4-14.4 3.2-24.8 16-24.8 31.2v70.4zM512.8 640l-41.6-37.6c-147.2-133.6-244-208-244-316.8 0-88 68.8-156.8 156.8-156.8 49.6 0 97.6 23.2 128.8 60C544 152 592 128.8 641.6 128.8c88 0 156.8 68.8 156.8 156.8 0 108-96.8 183.2-244 316.8L512.8 640z",fill:r(n,0,"#333333")}))};O.defaultProps={size:18};const H=O,L={display:"block"},A=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...L,...i}:L;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M942.4615936 284.62787926c-14.30911886-14.12709945-37.31996786-14.05468217-51.48229632 0.21920654L517.97142983 661.27810333 139.75544149 286.45003606c-14.30911886-14.16232846-37.31996786-14.05468217-51.51948344 0.21920654-14.16232846 14.30911886-14.05468217 37.35519687 0.21920654 51.51948345l401.99014627 398.34974663c0.61847666 0.61847666 1.41897273 0.76526706 2.03940637 1.34655658 0.14483342 0.14483342 0.18201941 0.32685283 0.32685283 0.47364324 7.09877874 7.02636259 16.38375538 10.55911595 25.63154489 10.55911595 9.35739278 0 18.75001458-3.60516949 25.85075143-10.77636551l398.34974663-401.99014628C956.84312974 321.8382427 956.73548345 298.7921647 942.4615936 284.62787926z",fill:r(n,0,"#333333")}))};A.defaultProps={size:18};const R=A,U={display:"block"},Z=e=>{let{size:t,color:n,style:i,...c}=e;const o=i?{...U,...i}:U;return l.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:o},c),l.createElement("path",{d:"M81.5384064 739.37212074c14.30911886 14.12709945 37.31996786 14.05468217 51.48229632-0.21920654L506.02857017 362.72189667 884.24455851 737.54996394c14.30911886 14.16232846 37.31996786 14.05468217 51.51948344-0.21920654 14.16232846-14.30911886 14.05468217-37.35519687-0.21920654-51.51948345l-401.99014627-398.34974663c-0.61847666-0.61847666-1.41897273-0.76526706-2.03940637-1.34655658-0.14483342-0.14483342-0.18201941-0.32685283-0.32685282-0.47364324-7.09877874-7.02636259-16.38375538-10.55911595-25.6315449-10.55911595-9.35739278 0-18.75001458 3.60516949-25.85075143 10.77636551l-398.34974663 401.99014628C67.15687026 702.1617573 67.26451655 725.2078353 81.5384064 739.37212074z",fill:r(n,0,"#333333")}))};Z.defaultProps={size:18};const j=Z,q=e=>{let{name:t,...n}=e;switch(t){case"youhua":return l.createElement(o,n);case"dayi":return l.createElement(u,n);case"shengji":return l.createElement(v,n);case"tiaozheng":return l.createElement(h,n);case"gengxin":return l.createElement(S,n);case"wendang":return l.createElement(b,n);case"shanchu":return l.createElement(I,n);case"bug":return l.createElement(z,n);case"xinzeng":return l.createElement(M,n);case"fuwu":return l.createElement(H,n);case"down":return l.createElement(R,n);case"up":return l.createElement(j,n)}return null},G="label_p8vM",V="icon_knQK";function F(e){const{children:t}=e,n={"\u65b0\u589e":{icon:"xinzeng",bgColor:"#39b54a"},"\u4fee\u590d":{icon:"bug",bgColor:"#9c26b0"},"\u6587\u6863":{icon:"wendang",bgColor:"rgb(79, 147, 255)"},"\u66f4\u65b0":{icon:"gengxin",bgColor:"#0081ff"},"\u8c03\u6574":{icon:"tiaozheng",bgColor:"#333"},"\u5347\u7ea7":{icon:"shengji",bgColor:"#e03997"},"\u79fb\u9664":{icon:"shanchu",bgColor:"#666"},"\u7b54\u7591":{icon:"dayi",bgColor:"#bbb"},"\u4f18\u5316":{icon:"youhua",bgColor:"#38e550"},"\u63a8\u8350":{bgColor:"#38e550"},"\u4f01\u4e1a\u7248":{bgColor:"#23AAF2"}};return l.createElement("label",{className:G,title:t,style:{backgroundColor:n[t].bgColor}},l.createElement(q,{name:n[t].icon,color:"white",size:14,className:V})," ",t)}},4748:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var l=n(7462),a=(n(7294),n(3905)),r=n(510);const i={id:"createtcpservice",title:"\u521b\u5efaTcpService"},c=void 0,o={unversionedId:"createtcpservice",id:"createtcpservice",title:"\u521b\u5efaTcpService",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/createtcpservice.mdx",sourceDirName:".",slug:"/createtcpservice",permalink:"/touchsocket/docs/createtcpservice",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/createtcpservice.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1677215236,formattedLastUpdatedAt:"Feb 24, 2023",frontMatter:{id:"createtcpservice",title:"\u521b\u5efaTcpService"},sidebar:"docs",previous:{title:"Tcp\u5165\u95e8\u57fa\u7840",permalink:"/touchsocket/docs/tcpintroduction"},next:{title:"\u521b\u5efaTcpClient",permalink:"/touchsocket/docs/createtcpclient"}},s={},p=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u7279\u70b9",id:"\u4e8c\u7279\u70b9",level:2},{value:"\u4e09\u3001\u4ea7\u54c1\u5e94\u7528\u573a\u666f",id:"\u4e09\u4ea7\u54c1\u5e94\u7528\u573a\u666f",level:2},{value:"\u56db\u3001\u670d\u52a1\u5668\u67b6\u6784",id:"\u56db\u670d\u52a1\u5668\u67b6\u6784",level:2},{value:"\u4e94\u3001\u53ef\u914d\u7f6e\u9879",id:"\u4e94\u53ef\u914d\u7f6e\u9879",level:2},{value:"SetBufferLength",id:"setbufferlength",level:4},{value:"SetMaxPackageSize",id:"setmaxpackagesize",level:4},{value:"SetThreadCount",id:"setthreadcount",level:4},{value:"SetGetDefaultNewID",id:"setgetdefaultnewid",level:4},{value:"SetListenIPHosts",id:"setlisteniphosts",level:4},{value:"SetServerName",id:"setservername",level:4},{value:"SetBacklogProperty",id:"setbacklogproperty",level:4},{value:"SetMaxCount",id:"setmaxcount",level:4},{value:"SetReceiveType",id:"setreceivetype",level:4},{value:"UsePlugin",id:"useplugin",level:4},{value:"SetServiceSslOption",id:"setservicessloption",level:4},{value:"UseNoDelay",id:"usenodelay",level:4},{value:"UseDelaySender",id:"usedelaysender",level:4},{value:"UseReuseAddress",id:"usereuseaddress",level:4},{value:"SetRemoteIPHost",id:"setremoteiphost",level:4},{value:"SetClientSslOption",id:"setclientssloption",level:4},{value:"SetKeepAliveValue",id:"setkeepalivevalue",level:4},{value:"SetBindIPHost",id:"setbindiphost",level:4},{value:"UseNoDelay",id:"usenodelay-1",level:4},{value:"UseBroadcast",id:"usebroadcast",level:4},{value:"\u516d\u3001\u652f\u6301\u63d2\u4ef6",id:"\u516d\u652f\u6301\u63d2\u4ef6",level:2},{value:"\u4e03\u3001\u521b\u5efaTcpService",id:"\u4e03\u521b\u5efatcpservice",level:2},{value:"7.1 \u7b80\u5355\u521b\u5efa",id:"71-\u7b80\u5355\u521b\u5efa",level:3},{value:"7.2 \u6cdb\u578b\u521b\u5efa",id:"72-\u6cdb\u578b\u521b\u5efa",level:3},{value:"\u516b\u3001\u63a5\u6536\u6570\u636e",id:"\u516b\u63a5\u6536\u6570\u636e",level:2},{value:"8.1 Received\u59d4\u6258\u5904\u7406",id:"81-received\u59d4\u6258\u5904\u7406",level:3},{value:"8.2 \u91cd\u5199SocketClient\u5904\u7406",id:"82-\u91cd\u5199socketclient\u5904\u7406",level:3},{value:"8.3 \u63d2\u4ef6\u5904\u7406 \u63a8\u8350",id:"83-\u63d2\u4ef6\u5904\u7406-\u63a8\u8350",level:3},{value:"\u4e5d\u3001AspNetCore\u4e2d\u521b\u5efa",id:"\u4e5daspnetcore\u4e2d\u521b\u5efa",level:2},{value:"\u5341\u3001\u53d1\u9001\u6570\u636e",id:"\u5341\u53d1\u9001\u6570\u636e",level:2},{value:"10.1 \u5982\u4f55\u83b7\u53d6SocketClient\uff1f",id:"101-\u5982\u4f55\u83b7\u53d6socketclient",level:3},{value:"10.2 \u53d1\u9001",id:"102-\u53d1\u9001",level:3},{value:"10.3 \u901a\u8fc7TcpService\u53d1\u9001",id:"103-\u901a\u8fc7tcpservice\u53d1\u9001",level:3}],u={toc:p};function d(e){let{components:t,...i}=e;return(0,a.kt)("wrapper",(0,l.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,a.kt)("p",null,"TcpService\u662fTcp\u7cfb\u670d\u52a1\u5668\u57fa\u7c7b\uff0c\u5b83\u4e0d\u53c2\u4e0e\u5b9e\u9645\u7684\u6570\u636e\u4ea4\u4e92\uff0c\u53ea\u662f\u914d\u7f6e\u3001\u6fc0\u6d3b\u3001\u7ba1\u7406\u3001\u6ce8\u9500\u3001\u91cd\u5efa",(0,a.kt)("strong",{parentName:"p"},"SocketClient"),"\u7c7b\u5b9e\u4f8b\u3002\u800c",(0,a.kt)("strong",{parentName:"p"},"SocketClient"),"\u662f\u5f53",(0,a.kt)("strong",{parentName:"p"},"TcpClient\uff08\u5ba2\u6237\u7aef\uff09"),"\u6210\u529f\u8fde\u63a5\u670d\u52a1\u5668\u4ee5\u540e\uff0c\u7531\u670d\u52a1\u5668\u65b0\u5efa\u7684\u4e00\u4e2a\u5b9e\u4f8b\u7c7b\uff0c\u540e\u7eed\u7684\u6240\u6709\u901a\u4fe1\uff0c\u4e5f\u90fd\u662f\u901a\u8fc7\u8be5\u5b9e\u4f8b\u5b8c\u6210\u7684\u3002"),(0,a.kt)("h2",{id:"\u4e8c\u7279\u70b9"},"\u4e8c\u3001\u7279\u70b9"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u7b80\u5355\u6613\u7528\u3002"),(0,a.kt)("li",{parentName:"ul"},"IOCP\u591a\u7ebf\u7a0b\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u5185\u5b58\u6c60\u652f\u6301"),(0,a.kt)("li",{parentName:"ul"},"\u9ad8\u6027\u80fd\uff08\u5b9e\u6d4b\u670d\u52a1\u5668\u5355\u5ba2\u6237\u7aef\u5355\u7ebf\u7a0b\uff0c\u6bcf\u79d2\u53ef\u63a5\u6536200w\u67618\u5b57\u8282\u7684\u4fe1\u606f\uff0c\u63a5\u6536\u6570\u636e\u6d41\u91cf\u53ef\u8fbe2.5GB/s\uff09\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u591a\u5730\u5740\u76d1\u542c"),"\uff08\u53ef\u4ee5\u4e00\u6b21\u6027\u76d1\u542c\u591a\u4e2aIP\u53ca\u7aef\u53e3\uff09"),(0,a.kt)("li",{parentName:"ul"},"\u9002\u914d\u5668\u9884\u5904\u7406\uff0c\u4e00\u952e\u5f0f\u89e3\u51b3",(0,a.kt)("strong",{parentName:"li"},"\u5206\u5305"),"\u3001",(0,a.kt)("strong",{parentName:"li"},"\u7c98\u5305"),"\u3001\u5bf9\u8c61\u89e3\u6790(\u5982HTTP\uff0cJson)\u7b49\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u8d85\u7b80\u5355\u7684\u540c\u6b65\u53d1\u9001\u3001\u5f02\u6b65\u53d1\u9001\u3001\u63a5\u6536\u7b49\u64cd\u4f5c\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u57fa\u4e8e\u59d4\u6258\u3001\u63d2\u4ef6\u9a71\u52a8\uff0c\u8ba9\u6bcf\u4e00\u6b65\u90fd\u80fd\u6267\u884cAOP\u3002")),(0,a.kt)("h2",{id:"\u4e09\u4ea7\u54c1\u5e94\u7528\u573a\u666f"},"\u4e09\u3001\u4ea7\u54c1\u5e94\u7528\u573a\u666f"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6240\u6709Tcp\u57fa\u7840\u4f7f\u7528\u573a\u666f\uff1a\u53ef\u8de8\u5e73\u53f0\u3001\u8de8\u8bed\u8a00\u4f7f\u7528\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u81ea\u5b9a\u4e49\u534f\u8bae\u89e3\u6790\u573a\u666f\uff1a\u53ef\u89e3\u6790\u4efb\u610f\u6570\u636e\u683c\u5f0f\u7684TCP\u6570\u636e\u62a5\u6587\u3002")),(0,a.kt)("h2",{id:"\u56db\u670d\u52a1\u5668\u67b6\u6784"},"\u56db\u3001\u670d\u52a1\u5668\u67b6\u6784"),(0,a.kt)("p",null,"\u670d\u52a1\u5668\u5728\u6536\u5230",(0,a.kt)("strong",{parentName:"p"},"\u65b0\u5ba2\u6237\u7aef\u8fde\u63a5"),"\u65f6\uff0c\u4f1a\u521b\u5efa\u4e00\u4e2aSocketClient\u7684\u6d3e\u751f\u7c7b\u5b9e\u4f8b\uff0c\u4e0e\u5ba2\u6237\u7aefTcpClient\u4e00\u4e00\u5bf9\u5e94\uff0c\u540e\u7eed\u7684\u6570\u636e\u901a\u4fe1\u5747\u7531\u6b64\u5b9e\u4f8b\u8d1f\u8d23\u3002"),(0,a.kt)("p",null,"SocketClient\u5728Service\u91cc\u9762\u4ee5\u5b57\u5178\u6620\u5c04\u3002ID\u4e3a\u952e\uff0cSocketClient\u672c\u8eab\u4e3a\u503c\u3002"),(0,a.kt)("img",{src:n(9544).Z,width:"500"}),(0,a.kt)("h2",{id:"\u4e94\u53ef\u914d\u7f6e\u9879"},"\u4e94\u3001\u53ef\u914d\u7f6e\u9879"),(0,a.kt)("details",null,(0,a.kt)("summary",null,"\u53ef\u914d\u7f6e\u9879"),(0,a.kt)("div",null,(0,a.kt)("h4",{id:"setbufferlength"},"SetBufferLength"),(0,a.kt)("p",null,"\u53d1\u9001\u3001\u63a5\u6536\u7f13\u5b58\u5bb9\u91cf\uff08\u5355\u4f4d\uff1abyte\uff09\uff0c\u9ed8\u8ba41024\xd764\u3002\u8bbe\u7f6e\u5efa\u8bae\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u6570\u636e\u5305\u8f83\u5c0f\uff0c\u5efa\u8bae10k\u5de6\u53f3\u7684\u503c\u3002\u66f4\u52a0\u8282\u7ea6\u5185\u5b58\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u6570\u636e\u5305\u8f83\u5927\uff0c\u4f8b\u5982\u6587\u4ef6\u4f20\u8f93\u7b49\uff0c\u5efa\u8bae64k\uff0c\u751a\u81f3\u66f4\u5927\u7684\u503c\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u8be5\u503c\u867d\u7136\u65e0\u4e0a\u9650\uff0c\u4f46\u662f\u4e00\u822c\u4e0d\u8981\u8d85\u8fc71Mb\uff0c\u4e0d\u7136\u4e0d\u4ec5\u6ca1\u610f\u4e49\uff0c\u8fd8\u5f88\u6d6a\u8d39")),(0,a.kt)("h4",{id:"setmaxpackagesize"},"SetMaxPackageSize"),(0,a.kt)("p",null,"\u6570\u636e\u5305\u6700\u5927\u503c\uff08\u5355\u4f4d\uff1abyte\uff09\uff0c\u9ed8\u8ba41024\xd71024\xd710\u3002\u8be5\u503c\u4f1a\u5728\u9002\u5f53\u65f6\u95f4\uff0c\u76f4\u63a5\u4f5c\u7528DataHandlingAdapter.MaxPackageSize\u3002 "),(0,a.kt)("h4",{id:"setthreadcount"},"SetThreadCount"),(0,a.kt)("p",null,"\u591a\u7ebf\u7a0b\u6570\u91cf\u3002\u8be5\u503c\u5728Auto\u6a21\u5f0f\u4e0b\u6307\u793a\u7ebf\u7a0b\u6c60\u7684\u6700\u5c11\u7ebf\u7a0b\u6570\u91cf\u548cIO\u7ebf\u7a0b\u6570\u91cf\u3002"),(0,a.kt)("p",null,"\u8bbe\u7f6e\u5efa\u8bae\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5f02\u6b65\u5904\u7406\u63a5\u6536\u6570\u636e\uff0c\u6b64\u65f6\u7ebf\u7a0b\u6570\u91cf\u8bbe\u7f6e\u4e3a\u5185\u6838\u7ebf\u7a0b\u5de6\u53f3\u7684\u503c\u5373\u53ef\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u540c\u6b65\u5904\u7406\u63a5\u6536\u6570\u636e\uff0c\u6b64\u65f6\u5e94\u5f53\u8003\u8651\u4e24\u4e2a\u56e0\u7d20\u3002\u8be5\u64cd\u4f5c\u662f\u5426\u4e3a\u8017\u65f6\u64cd\u4f5c\uff0c\u5982\u679c\u662f\uff0c\u5219\u8be5\u503c\u5728\u5141\u8bb8\u8303\u56f4\u5185\uff0c\u5e94\u5f53\u8bbe\u7f6e\u66f4\u53ef\u80fd\u5927\u7684\u503c\u3002\u5982\u679c\u4e0d\u662f\uff0c\u5219\u8bbe\u7f6e\u4e3a\u5185\u6838\u7ebf\u7a0b\u5de6\u53f3\u7684\u503c\u5373\u53ef\u3002")),(0,a.kt)("h4",{id:"setgetdefaultnewid"},"SetGetDefaultNewID"),(0,a.kt)("p",null,"\u914d\u7f6e\u521d\u59cbID\u7684\u5206\u914d\u7b56\u7565"),(0,a.kt)("h4",{id:"setlisteniphosts"},"SetListenIPHosts"),(0,a.kt)("p",null,"\u76d1\u542cIP\u548c\u7aef\u53e3\u53f7\u7ec4\uff0c\u53ef\u4ee5\u4e00\u6b21\u6027\u8bbe\u7f6e\u591a\u4e2a\u5730\u5740\u3002 "),(0,a.kt)("h4",{id:"setservername"},"SetServerName"),(0,a.kt)("p",null,"\u670d\u52a1\u5668\u6807\u8bc6\u540d\u79f0\uff0c\u65e0\u5b9e\u9645\u4f7f\u7528\u610f\u4e49\u3002"),(0,a.kt)("h4",{id:"setbacklogproperty"},"SetBacklogProperty"),(0,a.kt)("p",null,"Tcp\u534a\u8fde\u63a5\u6302\u8d77\u8fde\u63a5\u961f\u5217\u7684\u6700\u5927\u957f\u5ea6\u3002\u9ed8\u8ba4\u4e3a30 "),(0,a.kt)("h4",{id:"setmaxcount"},"SetMaxCount"),(0,a.kt)("p",null,"\u6700\u5927\u53ef\u8fde\u63a5\u6570\uff0c\u9ed8\u8ba4\u4e3a10000 "),(0,a.kt)("h4",{id:"setreceivetype"},"SetReceiveType"),(0,a.kt)("p",null,"\u63a5\u6536\u7c7b\u578b\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"AUTO\uff1a\u81ea\u52a8\u63a5\u6536\u6a21\u5f0f\u3002"),(0,a.kt)("li",{parentName:"ul"},"None\uff1a\u4e0d\u6295\u9012IO\u63a5\u6536\u7533\u8bf7\uff0c\u7528\u6237\u53ef\u901a\u8fc7GetStream\uff0c\u83b7\u53d6\u5230\u6d41\u4ee5\u540e\uff0c\u81ea\u5df1\u5904\u7406\u63a5\u6536\u3002\u6ce8\u610f\uff1a\u8fde\u63a5\u7aef\u4e0d\u4f1a\u611f\u77e5\u4e3b\u52a8\u65ad\u5f00\u3002")),(0,a.kt)("h4",{id:"useplugin"},"UsePlugin"),(0,a.kt)("p",null,"\u662f\u5426\u542f\u7528\u63d2\u4ef6\u3002\u5728\u542f\u7528\u65f6\u6216\u8bb8\u4f1a\u5e26\u6765\u4e00\u70b9\u70b9\u6027\u80fd\u635f\u8017\uff0c\u57fa\u672c\u4e0a\u4e0d\u662f\u5343\u4e07\u6570\u636e\u4ea4\u4e92\u6839\u672c\u4e0d\u503c\u4e00\u63d0\u3002"),(0,a.kt)("h4",{id:"setservicessloption"},"SetServiceSslOption"),(0,a.kt)("p",null,"Ssl\u914d\u7f6e\uff0c\u4e3aNull\u65f6\u5219\u4e0d\u542f\u7528\u3002 "),(0,a.kt)("h4",{id:"usenodelay"},"UseNoDelay"),(0,a.kt)("p",null,"\u8bbe\u7f6eSocket\u7684NoDelay\u5c5e\u6027\uff0c\u9ed8\u8ba4false\u3002 "),(0,a.kt)("h4",{id:"usedelaysender"},"UseDelaySender"),(0,a.kt)("p",null,"\u4f7f\u7528\u5ef6\u8fdf\u53d1\u9001\u3002\u4f17\u6240\u5468\u77e5\uff0ctcp\u6570\u636e\u62a5\u6587\u4e3a\u4e86\u53d1\u9001\u6548\u7387\uff0c\u4f1a\u9ed8\u8ba4\u542f\u7528",(0,a.kt)("strong",{parentName:"p"},"\u5ef6\u8fdf\u7b97\u6cd5"),"\u3002\u4f46\u662f\u8fd9\u79cd\u8bbe\u7f6e\uff0c\u53ea\u80fd\u4e00\u5b9a\u7a0b\u5ea6\u7684\u7f13\u89e3\u5c0f\u6570\u636e\u53d1\u9001\u6548\u7387\u4f4e\u7684\u95ee\u9898\uff0c\u56e0\u4e3a\u5b83\u4e3a\u4e86\u4fdd\u8bc1\u591a\u7ebf\u7a0b\u53d1\u9001\u7684\u6709\u5e8f\u6027\uff0c\u5728send\u51fd\u6570\u4e2d\u8bbe\u7f6e\u4e86\u7ebf\u7a0b\u540c\u6b65\uff0c\u6240\u4ee5\u8bf4\uff0c\u6bcf\u8c03\u7528\u4e00\u6b21send\uff0c\u5b9e\u9645\u4e0a\u90fd\u662f\u5de8\u5927\u7684\u6027\u80fd\u6d88\u8017\uff08\u6b64\u5904\u7528iocp\u53d1\u9001\u4ea6\u7136\uff09\u3002\u6240\u4ee5\uff0c\u8981\u89e3\u51b3\u8be5\u95ee\u9898\uff0c \u6700\u7ec8\u8fd8\u662f\u8981\u5c06\u5c0f\u6570\u636e\uff0c\u7ec4\u5408\u6210\u5927\u6570\u636e\uff0c\u8fd9\u6837\u624d\u80fd\u66f4\u9ad8\u6548\u7387\u7684\u53d1\u9001\u3002\u6240\u4ee5\uff0cDelaySender\u6b63\u662f\u8d1f\u8d23\u6b64\u7c7b\u5de5\u4f5c\u7684\u3002"),(0,a.kt)("p",null,"\u4f7f\u7528DelaySender\uff0c\u4f1a\u4e00\u5b9a\u7a0b\u5ea6\u7684\u964d\u4f4e\u53d1\u9001\u7684\u53ca\u65f6\u6027\uff0c\u4f46\u662f\u964d\u4f4e\u7a0b\u5ea6\u5e76\u4e0d\u9ad8\uff0c\u7b80\u5355\u6765\u8bf4\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u4e00\u4e2a\u5305\u5927\u4e8e512kb\uff0c\u5219\u4e0d\u4f1a\u5ef6\u8fdf\uff0c\u76f4\u63a5\u53d1\u9001\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5982\u679c\u53d1\u9001\u7b2c\u4e00\u4e2a\u5305\uff0c\u4e0e\u7b2c\u4e8c\u4e2a\u5305\u7684\u65f6\u95f4\u95f4\u9694\u5c0f\u4e8e\u4e00\u4e2a\u7ebf\u7a0b\u6c60\u7ebf\u7a0b\u8c03\u5ea6\u7684\u65f6\u95f4\uff08\u8fd9\u4e2a\u65f6\u95f4\u6781\u77ed\uff0c\u4e00\u822c\u6765\u8bf4\u4f1a\u572810",(0,a.kt)("strong",{parentName:"li"},"\u5fae\u79d2"),"\u5de6\u53f3\uff09\uff0c\u5219\u4f1a\u5c06\u8fd9\u4e24\u4e2a\u5305\u538b\u7f29\u4e3a\u4e00\u4e2a\u5305\u53d1\u9001\u3002")),(0,a.kt)("h4",{id:"usereuseaddress"},"UseReuseAddress"),(0,a.kt)("p",null,"\u542f\u7528\u7aef\u53e3\u590d\u7528\u3002\u8be5\u914d\u7f6e\u53ef\u5728\u670d\u52a1\u5668\u3001\u6216\u5ba2\u6237\u7aef\u5728\u76d1\u542c\u7aef\u53e3\u65f6\uff0c\u8fd0\u884c\u76d1\u542c\u540c\u4e00\u4e2a\u7aef\u53e3\u3002\u53ef\u4ee5\u4e00\u5b9a\u7a0b\u5ea6\u7f13\u89e3\u7aef\u53e3\u6765\u4e0d\u53ca\u91ca\u653e\u7684\u95ee\u9898\u3002"),(0,a.kt)("h4",{id:"setremoteiphost"},"SetRemoteIPHost"),(0,a.kt)("p",null,"\u94fe\u63a5\u5230\u7684\u8fdc\u7a0bIPHost\uff0c\u652f\u6301\u57df\u540d\u3002\u652f\u6301\u7c7b\u578b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u4f7f\u7528IP&Port\uff0c\u4f20\u5165\u5f62\u5982\uff1a127.0.0.1:7789\u7684\u5b57\u7b26\u4e32\u5373\u53ef\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u4f7f\u7528\u57df\u540d\uff0c\u5fc5\u987b\u5305\u542b\u534f\u8bae\u7c7b\u578b\uff0c\u5f62\u5982\uff1a",(0,a.kt)("a",{parentName:"li",href:"http://baidu.com%E6%88%96%E8%80%85https://baidu.com:80"},"http://baidu.com\u6216\u8005https://baidu.com:80"))),(0,a.kt)("h4",{id:"setclientssloption"},"SetClientSslOption"),(0,a.kt)("p",null,"\u5ba2\u6237\u7aefSsl\u914d\u7f6e\uff0c\u4e3aNull\u65f6\u5219\u4e0d\u542f\u7528\u3002\n\u6ce8\u610f\uff0c\u5f53RemoteIPHost\u4f7f\u7528https\u3001wss\u7684\u57df\u540d\u65f6\uff0c\u8be5\u914d\u7f6e\u4f1a\u4f7f\u7528\u7cfb\u7edf\u9ed8\u8ba4\u914d\u7f6e\u751f\u6548\u3002"),(0,a.kt)("h4",{id:"setkeepalivevalue"},"SetKeepAliveValue"),(0,a.kt)("p",null,"\u4e3aSocket\u8bbe\u7f6e\u7684\u5c5e\u6027\u3002\n\u6ce8\u610f\uff1a\u8be5\u914d\u7f6e\u4ec5\u5728window\u5e73\u53f0\u751f\u6548\u3002"),(0,a.kt)("h4",{id:"setbindiphost"},"SetBindIPHost"),(0,a.kt)("p",null,"\u7ed1\u5b9a\u7aef\u53e3\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u5728UdpSessionBase\u4e2d\u8868\u793a\u672c\u5730\u76d1\u542c\u5730\u5740"),(0,a.kt)("li",{parentName:"ul"},"\u5728TcpClient\u4e2d\u8868\u793a\u56fa\u5b9a\u5ba2\u6237\u7aef\u7aef\u53e3\u53f7\u3002")),(0,a.kt)("p",null,"\u4f7f\u7528DelaySender\uff0c\u4f1a\u4e00\u5b9a\u7a0b\u5ea6\u7684\u964d\u4f4e\u53d1\u9001\u7684\u53ca\u65f6\u6027\uff0c\u4f46\u662f\u964d\u4f4e\u7a0b\u5ea6\u5e76\u4e0d\u9ad8\uff0c\u7b80\u5355\u6765\u8bf4\uff1a"),(0,a.kt)("p",null,"\u5982\u679c\u4e00\u4e2a\u5305\u5927\u4e8e512kb\uff0c\u5219\u4e0d\u4f1a\u5ef6\u8fdf\uff0c\u76f4\u63a5\u53d1\u9001\u3002\n\u5982\u679c\u53d1\u9001\u7b2c\u4e00\u4e2a\u5305\uff0c\u4e0e\u7b2c\u4e8c\u4e2a\u5305\u7684\u65f6\u95f4\u95f4\u9694\u5c0f\u4e8e\u4e00\u4e2a\u7ebf\u7a0b\u6c60\u7ebf\u7a0b\u8c03\u5ea6\u7684\u65f6\u95f4\uff08\u8fd9\u4e2a\u65f6\u95f4\u6781\u77ed\uff0c\u4e00\u822c\u6765\u8bf4\u4f1a\u572810\u5fae\u79d2\u5de6\u53f3\uff09\uff0c\u5219\u4f1a\u5c06\u8fd9\u4e24\u4e2a\u5305\u538b\u7f29\u4e3a\u4e00\u4e2a\u5305\u53d1\u9001\u3002"),(0,a.kt)("h4",{id:"usenodelay-1"},"UseNoDelay"),(0,a.kt)("p",null,"\u8bbe\u7f6eSocket\u7684NoDelay\u5c5e\u6027\uff0c\u9ed8\u8ba4false\u3002"),(0,a.kt)("h4",{id:"usebroadcast"},"UseBroadcast"),(0,a.kt)("p",null,"\u8be5\u503c\u6307\u5b9a\u53ef\u4ee5\u53d1\u9001\u6216\u63a5\u6536\u5e7f\u64ad\u6570\u636e\u5305\u3002"))),(0,a.kt)("h2",{id:"\u516d\u652f\u6301\u63d2\u4ef6"},"\u516d\u3001\u652f\u6301\u63d2\u4ef6"),(0,a.kt)("p",null,"\u652f\u6301",(0,a.kt)("strong",{parentName:"p"},"ITcpPlugin"),"\u63a5\u53e3\uff0c\u6216\u8005\u7ee7\u627f\u81ea",(0,a.kt)("strong",{parentName:"p"},"TcpPluginBase"),"\u7c7b\uff0c\u91cd\u5199\u76f8\u5e94\u65b9\u6cd5\u5373\u53ef\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},"\u63d2\u4ef6\u65b9\u6cd5"),(0,a.kt)("th",{parentName:"tr",align:null},"\u529f\u80fd"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnConnecting"),(0,a.kt)("td",{parentName:"tr",align:null},"\u6b64\u65f6Socket\u5b9e\u9645\u4e0a\u5df2\u7ecf\u5b8c\u6210\u8fde\u63a5\uff0c\u4f46\u662f\u5e76\u6ca1\u6709\u542f\u52a8\u63a5\u6536\uff0c\u7136\u540e\u89e6\u53d1\u3002")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnConnected"),(0,a.kt)("td",{parentName:"tr",align:null},"\u540c\u610f\u8fde\u63a5\uff0c\u4e14\u6210\u529f\u542f\u52a8\u63a5\u6536\u540e\u89e6\u53d1")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnDisconnecting"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5f53\u5ba2\u6237\u7aef\u4e3b\u52a8\u8c03\u7528Close\u65f6\u89e6\u53d1")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnDisconnected"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5f53\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\u540e\u89e6\u53d1")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnReceivingData"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5728\u6536\u5230\u539f\u59cb\u6570\u636e\u65f6\u89e6\u53d1\uff0c\u6240\u6709\u7684\u6570\u636e\u5747\u5728ByteBlock\u91cc\u9762\u3002")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnReceivedData"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5728\u6536\u5230\u9002\u914d\u5668\u6570\u636e\u65f6\u89e6\u53d1\uff0c\u6839\u636e\u9002\u914d\u5668\u7c7b\u578b\uff0c\u6570\u636e\u53ef\u80fd\u5728ByteBlock\u6216\u8005IRequestInfo\u91cc\u9762\u3002")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnSendingData"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5f53\u5373\u5c06\u53d1\u9001\u6570\u636e\u65f6\uff0c\u8c03\u7528\u8be5\u65b9\u6cd5\u5728\u9002\u914d\u5668\u4e4b\u540e\uff0c\u63a5\u4e0b\u6765\u5373\u4f1a\u53d1\u9001\u6570\u636e\u3002")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},"OnIDChanged"),(0,a.kt)("td",{parentName:"tr",align:null},"\u5f53SocketClient\u7684ID\u53d1\u751f\u6539\u53d8\u65f6\u89e6\u53d1\u3002")))),(0,a.kt)("h2",{id:"\u4e03\u521b\u5efatcpservice"},"\u4e03\u3001\u521b\u5efaTcpService"),(0,a.kt)("h3",{id:"71-\u7b80\u5355\u521b\u5efa"},"7.1 \u7b80\u5355\u521b\u5efa"),(0,a.kt)("p",null,"\u76f4\u63a5\u521d\u59cb\u5316TcpService\uff0c\u4f1a\u4f7f\u7528\u9ed8\u8ba4\u7684",(0,a.kt)("strong",{parentName:"p"},"SocketClient"),"\u3002\n\u7b80\u5355\u7684\u5904\u7406\u903b\u8f91\u53ef\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"Connecting"),"\u3001",(0,a.kt)("strong",{parentName:"p"},"Connected"),"\u3001",(0,a.kt)("strong",{parentName:"p"},"Received"),"\u7b49\u59d4\u6258\u76f4\u63a5\u5b9e\u73b0\u3002"),(0,a.kt)("p",null,"\u4ee3\u7801\u5982\u4e0b\uff1a"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpService service = new TcpService();\nservice.Connecting = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u6b63\u5728\u8fde\u63a5\nservice.Connected = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u6210\u529f\u8fde\u63a5\nservice.Disconnected = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\nservice.Received = (client, byteBlock, requestInfo) =>\n{\n //\u4ece\u5ba2\u6237\u7aef\u6536\u5230\u4fe1\u606f\n string mes = Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len);\n client.Logger.Info($"\u5df2\u4ece{client.ID}\u63a5\u6536\u5230\u4fe1\u606f\uff1a{mes}");\n\n client.Send(mes);//\u5c06\u6536\u5230\u7684\u4fe1\u606f\u76f4\u63a5\u8fd4\u56de\u7ed9\u53d1\u9001\u65b9\n\n //client.Send("id",mes);//\u5c06\u6536\u5230\u7684\u4fe1\u606f\u8fd4\u56de\u7ed9\u7279\u5b9aID\u7684\u5ba2\u6237\u7aef\n\n var ids = service.GetIDs();\n foreach (var clientId in ids)//\u5c06\u6536\u5230\u7684\u4fe1\u606f\u8fd4\u56de\u7ed9\u5728\u7ebf\u7684\u6240\u6709\u5ba2\u6237\u7aef\u3002\n {\n if (clientId != client.ID)//\u4e0d\u7ed9\u81ea\u5df1\u53d1\n {\n service.Send(clientId, mes);\n }\n }\n};\n\nservice.Setup(new TouchSocketConfig()//\u8f7d\u5165\u914d\u7f6e \n .SetListenIPHosts(new IPHost[] { new IPHost("tcp://127.0.0.1:7789"), new IPHost(7790) })//\u540c\u65f6\u76d1\u542c\u4e24\u4e2a\u5730\u5740\n .ConfigureContainer(a =>//\u5bb9\u5668\u7684\u914d\u7f6e\u987a\u5e8f\u5e94\u8be5\u5728\u6700\u524d\u9762\n {\n a.AddConsoleLogger();//\u6dfb\u52a0\u4e00\u4e2a\u63a7\u5236\u53f0\u65e5\u5fd7\u6ce8\u5165\uff08\u6ce8\u610f\uff1a\u5728maui\u4e2d\u63a7\u5236\u53f0\u65e5\u5fd7\u4e0d\u53ef\u7528\uff09\n })\n .ConfigurePlugins(a =>\n {\n //a.Add();//\u6b64\u5904\u53ef\u4ee5\u6dfb\u52a0\u63d2\u4ef6\n }))\n .Start();//\u542f\u52a8\n')),(0,a.kt)("h3",{id:"72-\u6cdb\u578b\u521b\u5efa"},"7.2 \u6cdb\u578b\u521b\u5efa"),(0,a.kt)("p",null,"\u901a\u8fc7\u6cdb\u578b\u521b\u5efa\u670d\u52a1\u5668\uff0c\u53ef\u4ee5\u5b9e\u73b0\u5f88\u591a\u6709\u610f\u601d\uff0c\u4e14\u80fd",(0,a.kt)("strong",{parentName:"p"},"\u91cd\u5199"),"\u4e00\u4e9b\u6709\u7528\u7684\u529f\u80fd\u3002\u4e0b\u9762\u5c31\u6f14\u793a\uff0c\u5982\u4f55\u901a\u8fc7\u6cdb\u578b\u521b\u5efa\u670d\u52a1\u5668\u3002"),(0,a.kt)("p",null,"\u4ee3\u7801\u5982\u4e0b\uff1a"),(0,a.kt)("p",null,"\uff081\uff09\u5efa\u7acbSocketClient\u7ee7\u627f\u7c7b\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MySocketClient : SocketClient\n{\n protected override void HandleReceivedData(ByteBlock byteBlock, IRequestInfo requestInfo)\n {\n //\u6b64\u5904\u903b\u8f91\u5355\u7ebf\u7a0b\u5904\u7406\u3002\n\n //\u6b64\u5904\u5904\u7406\u6570\u636e\uff0c\u529f\u80fd\u76f8\u5f53\u4e8eReceived\u59d4\u6258\u3002\n string mes = Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len);\n Console.WriteLine($"\u5df2\u63a5\u6536\u5230\u4fe1\u606f\uff1a{mes}");\n }\n}\n')),(0,a.kt)("p",null,"\uff082\uff09\u5efa\u7acbTcpService\u7ee7\u627f\u7c7b\u3002\u5b9e\u9645\u4e0a\u5982\u679c\u4e1a\u52a1\u4e0d\u6d89\u53ca\u670d\u52a1\u5668\u914d\u7f6e\u7684\u8bdd\uff0c\u53ef\u4ee5\u7701\u7565\u8be5\u6b65\u9aa4\uff0c\u4f7f\u7528",(0,a.kt)("strong",{parentName:"p"},"TcpService\u7684\u6cdb\u578b"),"\u76f4\u63a5\u521b\u5efa\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public class MyService : TcpService\n{\n protected override void LoadConfig(TouchSocketConfig config)\n {\n //\u6b64\u5904\u52a0\u8f7d\u914d\u7f6e\uff0c\u7528\u6237\u53ef\u4ee5\u4ece\u914d\u7f6e\u4e2d\u83b7\u53d6\u914d\u7f6e\u9879\u3002\n base.LoadConfig(config);\n }\n\n protected override void OnConnecting(MySocketClient socketClient, ClientOperationEventArgs e)\n {\n //\u6b64\u5904\u903b\u8f91\u4f1a\u591a\u7ebf\u7a0b\u5904\u7406\u3002\n\n \n //e.ID:\u5bf9\u65b0\u8fde\u63a5\u7684\u5ba2\u6237\u7aef\u8fdb\u884cID\u521d\u59cb\u5316\uff0c\u4f8b\u5982\u53ef\u4ee5\u8bbe\u7f6e\u4e3a\u5176IP\u5730\u5740\u3002\n //e.IsPermitOperation:\u6307\u793a\u662f\u5426\u5141\u8bb8\u8be5\u5ba2\u6237\u7aef\u94fe\u63a5\u3002\n base.OnConnecting(socketClient, e);\n }\n}\n\n")),(0,a.kt)("p",null,"\uff083\uff09\u521b\u5efa\u670d\u52a1\u5668\uff08\u5305\u542bMyService\uff09\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'MyService service = new MyService();\nservice.Connecting = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u6b63\u5728\u8fde\u63a5\nservice.Connected = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u6210\u529f\u8fde\u63a5\nservice.Disconnected = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\n\nservice.Setup(new TouchSocketConfig()//\u8f7d\u5165\u914d\u7f6e \n .SetListenIPHosts(new IPHost[] { new IPHost("tcp://127.0.0.1:7789"), new IPHost(7790) })//\u540c\u65f6\u76d1\u542c\u4e24\u4e2a\u5730\u5740\n .ConfigureContainer(a =>//\u5bb9\u5668\u7684\u914d\u7f6e\u987a\u5e8f\u5e94\u8be5\u5728\u6700\u524d\u9762\n {\n a.UseConsoleLogger();//\u6dfb\u52a0\u4e00\u4e2a\u63a7\u5236\u53f0\u65e5\u5fd7\u6ce8\u5165\uff08\u6ce8\u610f\uff1a\u5728maui\u4e2d\u63a7\u5236\u53f0\u65e5\u5fd7\u4e0d\u53ef\u7528\uff09\n })\n .ConfigurePlugins(a =>\n {\n //a.Add();//\u6b64\u5904\u53ef\u4ee5\u6dfb\u52a0\u63d2\u4ef6\n }))\n .Start();//\u542f\u52a8\n')),(0,a.kt)("p",null,"\uff084\uff09\u521b\u5efa\u670d\u52a1\u5668\uff08\u4e0d\u542bMyService\uff09\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpService service = new TcpService();\nservice.Connecting = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u6b63\u5728\u8fde\u63a5\nservice.Connected = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u6210\u529f\u8fde\u63a5\nservice.Disconnected = (client, e) => { };//\u6709\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\n\nservice.Setup(new TouchSocketConfig()//\u8f7d\u5165\u914d\u7f6e \n .SetListenIPHosts(new IPHost[] { new IPHost("tcp://127.0.0.1:7789"), new IPHost(7790) })//\u540c\u65f6\u76d1\u542c\u4e24\u4e2a\u5730\u5740\n .ConfigureContainer(a =>//\u5bb9\u5668\u7684\u914d\u7f6e\u987a\u5e8f\u5e94\u8be5\u5728\u6700\u524d\u9762\n {\n a.UseConsoleLogger();//\u6dfb\u52a0\u4e00\u4e2a\u63a7\u5236\u53f0\u65e5\u5fd7\u6ce8\u5165\uff08\u6ce8\u610f\uff1a\u5728maui\u4e2d\u63a7\u5236\u53f0\u65e5\u5fd7\u4e0d\u53ef\u7528\uff09\n })\n .ConfigurePlugins(a =>\n {\n //a.Add();//\u6b64\u5904\u53ef\u4ee5\u6dfb\u52a0\u63d2\u4ef6\n }))\n .Start();//\u542f\u52a8\n')),(0,a.kt)("admonition",{title:"\u5efa\u8bae",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u7531\u4e0a\u8ff0\u4ee3\u7801\u53ef\u4ee5\u770b\u51fa\uff0c\u901a\u8fc7\u7ee7\u627f\uff0c\u53ef\u4ee5\u66f4\u52a0\u7075\u6d3b\u7684\u5b9e\u73b0\u6269\u5c55\u3002\u4f46\u5b9e\u9645\u4e0a\uff0c\u5f88\u591a\u4e1a\u52a1\u6211\u4eec\u5e0c\u671b\u5927\u5bb6\u80fd\u901a\u8fc7\u63d2\u4ef6\u5b8c\u6210\u3002")),(0,a.kt)("h2",{id:"\u516b\u63a5\u6536\u6570\u636e"},"\u516b\u3001\u63a5\u6536\u6570\u636e"),(0,a.kt)("p",null,"\u5728TcpService\u4e2d\uff0c\u63a5\u6536\u6570\u636e\u7684\u65b9\u5f0f\u6709\u5f88\u591a\u79cd\u3002\u591a\u79cd\u65b9\u5f0f\u53ef\u4ee5\u7ec4\u5408\u4f7f\u7528\u3002"),(0,a.kt)("h3",{id:"81-received\u59d4\u6258\u5904\u7406"},"8.1 Received\u59d4\u6258\u5904\u7406"),(0,a.kt)("p",null,"\u5f53\u4f7f\u7528TcpService\uff08\u975e\u6cdb\u578b\uff09\u521b\u5efa\u670d\u52a1\u5668\u65f6\uff0c\u5185\u90e8\u5df2\u7ecf\u5b9a\u4e49\u597d\u4e86\u4e00\u4e2a\u5916\u7f6e\u59d4\u6258Received\uff0c\u53ef\u4ee5\u901a\u8fc7\u8be5\u59d4\u6258\u76f4\u63a5\u63a5\u6536\u6570\u636e\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpService service = new TcpService();\nservice.Received = (client, byteBlock, requestInfo) =>\n{\n //\u4ece\u5ba2\u6237\u7aef\u6536\u5230\u4fe1\u606f\n string mes = Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len);\n client.Logger.Info($"\u5df2\u4ece{client.ID}\u63a5\u6536\u5230\u4fe1\u606f\uff1a{mes}");\n};\n\nservice.Setup(new TouchSocketConfig()//\u8f7d\u5165\u914d\u7f6e \n .SetListenIPHosts(new IPHost[] { new IPHost("tcp://127.0.0.1:7789"), new IPHost(7790) })//\u540c\u65f6\u76d1\u542c\u4e24\u4e2a\u5730\u5740\n .ConfigureContainer(a =>//\u5bb9\u5668\u7684\u914d\u7f6e\u987a\u5e8f\u5e94\u8be5\u5728\u6700\u524d\u9762\n {\n a.UseConsoleLogger();//\u6dfb\u52a0\u4e00\u4e2a\u63a7\u5236\u53f0\u65e5\u5fd7\u6ce8\u5165\uff08\u6ce8\u610f\uff1a\u5728maui\u4e2d\u63a7\u5236\u53f0\u65e5\u5fd7\u4e0d\u53ef\u7528\uff09\n }))\n .Start();//\u542f\u52a8\n')),(0,a.kt)("h3",{id:"82-\u91cd\u5199socketclient\u5904\u7406"},"8.2 \u91cd\u5199SocketClient\u5904\u7406"),(0,a.kt)("p",null,"\u6b63\u59826.2\u6240\u793a\uff0c\u53ef\u4ee5\u76f4\u63a5\u5728MySocketClient\u7684\u91cd\u5199",(0,a.kt)("strong",{parentName:"p"},"HandleReceivedData"),"\u4e2d\u76f4\u63a5\u5904\u7406\u6570\u636e\u3002"),(0,a.kt)("h3",{id:"83-\u63d2\u4ef6\u5904\u7406-\u63a8\u8350"},"8.3 \u63d2\u4ef6\u5904\u7406 ",(0,a.kt)(r.Z,{mdxType:"Tag"},"\u63a8\u8350")),(0,a.kt)("p",null,"\u6309\u7167TouchSocket\u7684\u8bbe\u8ba1\u7406\u5ff5\uff0c\u4f7f\u7528\u63d2\u4ef6\u5904\u7406\u6570\u636e\uff0c\u662f\u4e00\u9879\u975e\u5e38\u7b80\u5355\uff0c\u4e14\u9ad8\u5ea6\u89e3\u8026\u7684\u65b9\u5f0f\u3002\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u670d\u52a1\u5668\u914d\u7f6e\u542f\u7528\u63d2\u4ef6\uff08UsePlugin\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u65b0\u5efa\u63d2\u4ef6\u7c7b"),(0,a.kt)("li",{parentName:"ol"},"\u6dfb\u52a0\u63d2\u4ef6")),(0,a.kt)("p",null,"\u4ee3\u7801\u5982\u4e0b\uff1a"),(0,a.kt)("p",null,"\uff081\uff09\u58f0\u660e\u63d2\u4ef6"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public class MyPlugin : TcpPluginBase\n{\n public MyPlugin()\n {\n this.Order = 0;//\u6b64\u503c\u8868\u793a\u63d2\u4ef6\u7684\u6267\u884c\u987a\u5e8f\uff0c\u5f53\u591a\u4e2a\u63d2\u4ef6\u5e76\u5b58\u65f6\uff0c\u8be5\u503c\u8d8a\u5927\uff0c\u8d8a\u5728\u524d\u6267\u884c\u3002\n }\n \n protected override void OnReceivedData(SocketClient client, ReceivedDataEventArgs e)\n {\n //\u8fd9\u91cc\u5904\u7406\u6570\u636e\u63a5\u6536\n //\u6839\u636e\u9002\u914d\u5668\u7c7b\u578b\uff0ce.ByteBlock\u4e0ee.RequestInfo\u4f1a\u5448\u73b0\u4e0d\u540c\u7684\u503c\uff0c\u5177\u4f53\u770b\u6587\u6863=\u300b\u9002\u914d\u5668\u90e8\u5206\u3002\n ByteBlock byteBlock = e.ByteBlock;\n IRequestInfo requestInfo = e.RequestInfo;\n\n //e.Handled = true;//\u8868\u793a\u8be5\u6570\u636e\u5df2\u7ecf\u88ab\u672c\u63d2\u4ef6\u5904\u7406\uff0c\u65e0\u9700\u518d\u6295\u9012\u5230\u5176\u4ed6\u63d2\u4ef6\u3002\n base.OnReceivedData(client, e);\n }\n}\n")),(0,a.kt)("p",null,"\uff082\uff09\u521b\u5efa\u4f7f\u7528\u63d2\u4ef6\u5904\u7406\u7684\u670d\u52a1\u5668"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'TcpService service = new TcpService();\nservice.Setup(new TouchSocketConfig()\n .SetListenIPHosts(new IPHost[] { new IPHost("127.0.0.1:7789"), new IPHost(7790) })\n .UsePlugin()\n .ConfigureContainer(a=>\n {\n a.UseConsoleLogger();\n })\n .ConfigurePlugins(a => \n {\n a.Add();\n }))\n .Start();\n')),(0,a.kt)("h2",{id:"\u4e5daspnetcore\u4e2d\u521b\u5efa"},"\u4e5d\u3001AspNetCore\u4e2d\u521b\u5efa"),(0,a.kt)("p",null,"\u9996\u5148\u5efa\u8bae\u5b89\u88c5",(0,a.kt)("inlineCode",{parentName:"p"},"TouchSocket.AspNetCore"),"\u6216\u8005",(0,a.kt)("inlineCode",{parentName:"p"},"TouchSocketPro.AspNetCore"),"\uff0c\u56e0\u4e3a\u8fd9\u4e2a\u91cc\u9762\u6709\u5f88\u591a\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\u7684\u6ce8\u5165\u9879\u3002"),(0,a.kt)("admonition",{title:"\u5efa\u8bae",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u5728\u5b89\u88c5",(0,a.kt)("inlineCode",{parentName:"p"},"TouchSocket.AspNetCore"),"\u6216\u8005",(0,a.kt)("inlineCode",{parentName:"p"},"TouchSocketPro.AspNetCore"),"\u7684\u540c\u65f6\uff0c\u6700\u597d\u4e5f\u5b89\u88c5",(0,a.kt)("inlineCode",{parentName:"p"},"TouchSocket"),"\u6216\u8005",(0,a.kt)("inlineCode",{parentName:"p"},"TouchSocketPro"),"\u3002\u8fd9\u6837\u66f4\u65b0\u4e5f\u5373\u65f6\u4e00\u4e9b\u3002")),(0,a.kt)("p",null,"\u5728AspNetCore\u4e2d\u4f7f\u7528TcpService\uff0c",(0,a.kt)("strong",{parentName:"p"},"\u4e0d\u5e94\u8be5"),"\u50cf\u666e\u901a\u7aef\u4e00\u6837\uff0c\u8ba2\u9605Received\u3002\u5e94\u8be5\u662f\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u63d2\u4ef6"),"\uff0c",(0,a.kt)("strong",{parentName:"p"},"\u6ce8\u5165"),"\u7b49\u65b9\u5f0f\u5b9e\u73b0\u3002\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u6ce8\u5165TcpService\uff0c\u5e76\u505a\u597d\u914d\u7f6e\uff08\u548c\u5e38\u89c4\u670d\u52a1\u5668\u914d\u7f6e\u4e00\u6837\uff09\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u65b0\u5efa\u63d2\u4ef6\uff0c\u5904\u7406\u6536\u5230\u7684\u6570\u636e\u3002")),(0,a.kt)("p",null,"\u4ee3\u7801\u5982\u4e0b\uff1a"),(0,a.kt)("p",null,"\uff081\uff09\u58f0\u660e\u63d2\u4ef6"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyTcpPlugin : TcpPluginBase\n{\n private ILogger m_logger;\n\n public MyTcpPlugin(ILogger logger)\n {\n this.m_logger = logger;\n }\n\n protected override void OnConnected(SocketClient client, TouchSocketEventArgs e)\n {\n m_logger.LogInformation("\u5ba2\u6237\u7aef\u8fde\u63a5");\n base.OnConnected(client, e);\n }\n\n protected override void OnReceivedData(SocketClient client, ReceivedDataEventArgs e)\n {\n //\u8fd9\u91cc\u5904\u7406\u6570\u636e\u63a5\u6536\n //\u6839\u636e\u9002\u914d\u5668\u7c7b\u578b\uff0ce.ByteBlock\u4e0ee.RequestInfo\u4f1a\u5448\u73b0\u4e0d\u540c\u7684\u503c\uff0c\u5177\u4f53\u770b\u6587\u6863=\u300b\u9002\u914d\u5668\u90e8\u5206\u3002\n ByteBlock byteBlock = e.ByteBlock;\n IRequestInfo requestInfo = e.RequestInfo;\n }\n}\n')),(0,a.kt)("p",null,"\uff082\uff09\u6ce8\u5165\u670d\u52a1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public void ConfigureServices(IServiceCollection services)\n{\n var tcpService = services.AddTcpService(config =>\n {\n config.SetListenIPHosts(new IPHost[] { new IPHost(7789) })\n .UsePlugin()\n .UseAspNetCoreContainer(services)\n .ConfigurePlugins(a =>\n {\n a.Add();//\u6b64\u63d2\u4ef6\u5c31\u53ef\u4ee5\u5904\u7406\u63a5\u6536\u6570\u636e\n });\n });\n}\n\n")),(0,a.kt)("p",null,"\u7136\u540e\u5728\u4efb\u610f\u5730\u65b9\uff0c\u4e5f\u53ef\u83b7\u5f97\u670d\u52a1\u3002"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"image.png",src:n(2127).Z,width:"1170",height:"480"})),(0,a.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u6b64\u65f6\uff0cTcpService\u4e0e\u6574\u4e2aAspNetCore\u662f\u5171\u4eabIOC\u5bb9\u5668\u7684\u3002\u5373\uff1aTcpService\u4e2d\u7684\u4efb\u4f55\u5730\u65b9\uff08\u4f8b\u5982\uff1a\u63d2\u4ef6\uff09\u4e5f\u80fd\u83b7\u5f97AspNetCore\u5df2\u6ce8\u518c\u7684\u670d\u52a1\u3002")),(0,a.kt)("h2",{id:"\u5341\u53d1\u9001\u6570\u636e"},"\u5341\u3001\u53d1\u9001\u6570\u636e"),(0,a.kt)("p",null,"\u6309\u7167\u67b6\u6784\u56fe\uff0c\u6bcf\u4e2a\u5ba2\u6237\u7aef\u6210\u529f\u8fde\u63a5\u540e\uff0c",(0,a.kt)("strong",{parentName:"p"},"\u670d\u52a1\u5668"),"\u90fd\u4f1a\u521b\u5efa\u4e00\u4e2a\u6d3e\u751f\u81ea",(0,a.kt)("strong",{parentName:"p"},"SocketClient"),"\u7684\u5b9e\u4f8b\uff0c\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u8be5\u5b9e\u4f8b"),"\u5373\u53ef\u5c06\u6570\u636e\u53d1\u9001\u81f3",(0,a.kt)("strong",{parentName:"p"},"\u5ba2\u6237\u7aef"),"\u3002"),(0,a.kt)("h3",{id:"101-\u5982\u4f55\u83b7\u53d6socketclient"},"10.1 \u5982\u4f55\u83b7\u53d6SocketClient\uff1f"),(0,a.kt)("p",null,"\uff081\uff09\u76f4\u63a5\u83b7\u53d6\u6240\u6709\u5728\u7ebf\u5ba2\u6237\u7aef"),(0,a.kt)("p",null,"\u901a\u8fc7",(0,a.kt)("inlineCode",{parentName:"p"},"service.GetClients"),"\u65b9\u6cd5\uff0c\u83b7\u53d6\u5f53\u524d\u5728\u7ebf\u7684\u6240\u6709\u5ba2\u6237\u7aef\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"SocketClient[] socketClients = service.GetClients();\n")),(0,a.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"\u7531\u4e8eSocketClient\u7684\u751f\u547d\u5468\u671f\u662f\u7531\u6846\u67b6\u63a7\u5236\u7684\uff0c\u6240\u4ee5\u6700\u597d\u5c3d\u91cf\u4e0d\u8981\u76f4\u63a5\u5f15\u7528\u8be5\u5b9e\u4f8b\uff0c\u53ef\u4ee5\u5f15\u7528SocketClient.ID\uff0c\u7136\u540e\u518d\u901a\u8fc7\u670d\u52a1\u5668\u67e5\u627e\u3002")),(0,a.kt)("p",null,"\uff082\uff09\u901a\u8fc7ID\u83b7\u53d6"),(0,a.kt)("p",null,"\u5148\u8c03\u7528",(0,a.kt)("inlineCode",{parentName:"p"},"service.GetIDs"),"\u65b9\u6cd5\uff0c\u83b7\u53d6\u5f53\u524d\u5728\u7ebf\u7684\u6240\u6709\u5ba2\u6237\u7aef\u7684ID\uff0c\u7136\u540e\u9009\u62e9\u9700\u8981\u7684ID\uff0c\u901a\u8fc7TryGetSocketClient\u65b9\u6cd5\uff0c\u83b7\u53d6\u5230\u60f3\u8981\u7684\u5ba2\u6237\u7aef\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"string[] ids = service.GetIDs();\nif (service.TryGetSocketClient(ids[0], out SocketClient socketClient))\n{\n}\n")),(0,a.kt)("h3",{id:"102-\u53d1\u9001"},"10.2 \u53d1\u9001"),(0,a.kt)("p",null,"\u3010\u540c\u6b65\u53d1\u9001\u3011"),(0,a.kt)("p",null,"SocketClient\u5df2\u7ecf\u5185\u7f6e\u4e86\u4e09\u79cd\u540c\u6b65\u53d1\u9001\u65b9\u6cd5\uff0c\u76f4\u63a5\u8c03\u7528\u5c31\u53ef\u4ee5\u53d1\u9001\uff0c\u5982\u679c\u53d1\u9001\u5931\u8d25\uff0c\u5219\u4f1a\u7acb\u5373\u629b\u51fa\u5f02\u5e38\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public virtual void Send(byte[] buffer);\npublic virtual void Send(ByteBlock byteBlock);\npublic virtual void Send(byte[] buffer, int offset, int length);\n")),(0,a.kt)("p",null,"\u3010\u5f02\u6b65\u53d1\u9001\u3011"),(0,a.kt)("p",null,"TcpClient\u5df2\u7ecf\u5185\u7f6e\u4e86\u4e09\u79cd\u5f02\u6b65\u53d1\u9001\u65b9\u6cd5\uff0c\u76f4\u63a5\u8c03\u7528\u5c31\u53ef\u4ee5\u53d1\u9001\u3002\u5982\u679c\u53d1\u9001\u5931\u8d25\uff0cawait\u5c31\u4f1a\u89e6\u53d1\u5f02\u5e38\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public virtual Task SendAsync(byte[] buffer);\npublic virtual Task SendAsync(ByteBlock byteBlock);\npublic virtual Task SendAsync(byte[] buffer, int offset, int length);\n")),(0,a.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u901a\u8fc7\u4e0a\u8ff0\u65b9\u6cd5\u53d1\u9001\u7684\u6570\u636e\uff0c\u90fd\u4f1a\u7ecf\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u9002\u914d\u5668"),"\uff0c\u5982\u679c\u60f3\u8981\u76f4\u63a5\u53d1\u9001\uff0c\u8bf7\u4f7f\u7528",(0,a.kt)("strong",{parentName:"p"},"DefaultSend"),"\u3002")),(0,a.kt)("h3",{id:"103-\u901a\u8fc7tcpservice\u53d1\u9001"},"10.3 \u901a\u8fc7TcpService\u53d1\u9001"),(0,a.kt)("p",null,"\u901a\u8fc7ID\u53d1\u9001\u6570\u636e\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public virtual void Send(string id, ByteBlock byteBlock);\npublic virtual void Send(string id, byte[] buffer, int offset, int length);\npublic virtual void Send(string id, byte[] buffer);\npublic virtual Task SendAsync(string id, ByteBlock byteBlock);\npublic virtual Task SendAsync(string id, byte[] buffer, int offset, int length);\npublic virtual Task SendAsync(string id, byte[] buffer);\n")))}d.isMDXComponent=!0},9544:(e,t,n)=>{n.d(t,{Z:()=>l});const l=n.p+"assets/images/createtcpservice-2-005d50c69d09a71156030539fb5bf7f6.png"},2127:(e,t,n)=>{n.d(t,{Z:()=>l});const l=n.p+"assets/images/createtcpservice-1-f7dd6a219c3c152c78ccf0cf84066439.png"}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/0654e75d.8db102f4.js b/handbook/build/assets/js/0654e75d.8db102f4.js new file mode 100644 index 0000000000000000000000000000000000000000..4a764d5d253c08f766769be7a42bd2cda396a580 --- /dev/null +++ b/handbook/build/assets/js/0654e75d.8db102f4.js @@ -0,0 +1 @@ +"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 diff --git a/handbook/build/assets/js/0fc86718.02289567.js b/handbook/build/assets/js/0fc86718.76bfa88e.js similarity index 96% rename from handbook/build/assets/js/0fc86718.02289567.js rename to handbook/build/assets/js/0fc86718.76bfa88e.js index d926c87ccae862a254f423c22b0bcd95c2314549..31399a1421a2205eca5795e7a207f08160b699e3 100644 --- a/handbook/build/assets/js/0fc86718.02289567.js +++ b/handbook/build/assets/js/0fc86718.76bfa88e.js @@ -1 +1 @@ -"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=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o=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{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([[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=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o=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{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 diff --git a/handbook/build/assets/js/329302c4.249a948b.js b/handbook/build/assets/js/329302c4.249a948b.js new file mode 100644 index 0000000000000000000000000000000000000000..92de7a8c84cf91e8c1f095d8bfda1fd15dedf6d8 --- /dev/null +++ b/handbook/build/assets/js/329302c4.249a948b.js @@ -0,0 +1 @@ +"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 diff --git a/handbook/build/assets/js/3ab343cc.2e24f491.js b/handbook/build/assets/js/3ab343cc.510841b4.js similarity index 99% rename from handbook/build/assets/js/3ab343cc.2e24f491.js rename to handbook/build/assets/js/3ab343cc.510841b4.js index ca08baa65aec09c4633690fdbe2364683cf6538f..eae7f59df3a9536350c2ff46c07162586c24a09c 100644 --- a/handbook/build/assets/js/3ab343cc.2e24f491.js +++ b/handbook/build/assets/js/3ab343cc.510841b4.js @@ -1 +1 @@ -"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[5873],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});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 l(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=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},k={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,l=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(n),d=r,m=u["".concat(c,".").concat(d)]||u[d]||k[d]||l;return n?a.createElement(m,o(o({ref:t},p),{},{components:n})):a.createElement(m,o({ref:t},p))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:r,o[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>k,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var a=n(7462),r=(n(7294),n(3905));const l={id:"createwebsocketservice",title:"\u521b\u5efaWebSocket\u670d\u52a1\u5668"},o=void 0,i={unversionedId:"createwebsocketservice",id:"createwebsocketservice",title:"\u521b\u5efaWebSocket\u670d\u52a1\u5668",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/createwebsocketservice.mdx",sourceDirName:".",slug:"/createwebsocketservice",permalink:"/touchsocket/docs/createwebsocketservice",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/createwebsocketservice.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1676859009,formattedLastUpdatedAt:"Feb 20, 2023",frontMatter:{id:"createwebsocketservice",title:"\u521b\u5efaWebSocket\u670d\u52a1\u5668"},sidebar:"docs",previous:{title:"\u4ea7\u54c1\u53ca\u67b6\u6784\u4ecb\u7ecd",permalink:"/touchsocket/docs/websocketdescription"},next:{title:"\u521b\u5efaWebSocket\u5ba2\u6237\u7aef",permalink:"/touchsocket/docs/createwebsocketclient"}},c={},s=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u53ef\u914d\u7f6e\u9879",id:"\u4e8c\u53ef\u914d\u7f6e\u9879",level:2},{value:"\u4e09\u3001\u652f\u6301\u63d2\u4ef6\u63a5\u53e3",id:"\u4e09\u652f\u6301\u63d2\u4ef6\u63a5\u53e3",level:2},{value:"\u56db\u3001\u521b\u5efaWebSocket\u670d\u52a1",id:"\u56db\u521b\u5efawebsocket\u670d\u52a1",level:2},{value:"4.1 \u7b80\u5355\u901a\u8fc7\u63d2\u4ef6\u521b\u5efa",id:"41-\u7b80\u5355\u901a\u8fc7\u63d2\u4ef6\u521b\u5efa",level:3},{value:"4.2 \u901a\u8fc7WebApi\u521b\u5efa",id:"42-\u901a\u8fc7webapi\u521b\u5efa",level:3},{value:"4.3 \u521b\u5efa\u57fa\u4e8eSsl\u7684WebSocket\u670d\u52a1",id:"43-\u521b\u5efa\u57fa\u4e8essl\u7684websocket\u670d\u52a1",level:3},{value:"\u4e94\u3001\u63a5\u6536\u6d88\u606f",id:"\u4e94\u63a5\u6536\u6d88\u606f",level:2},{value:"5.1 \u56de\u8c03\u63a5\u6536",id:"51-\u56de\u8c03\u63a5\u6536",level:3},{value:"5.2 \u63d2\u4ef6\u63a5\u53e3\u63a5\u6536",id:"52-\u63d2\u4ef6\u63a5\u53e3\u63a5\u6536",level:3},{value:"\u516d\u3001\u56de\u590d\u3001\u54cd\u5e94\u6570\u636e",id:"\u516d\u56de\u590d\u54cd\u5e94\u6570\u636e",level:2},{value:"6.1 \u5982\u4f55\u83b7\u53d6SocketClient\uff1f",id:"61-\u5982\u4f55\u83b7\u53d6socketclient",level:3},{value:"\uff081\uff09\u76f4\u63a5\u83b7\u53d6\u6240\u6709\u5728\u7ebf\u5ba2\u6237\u7aef",id:"1\u76f4\u63a5\u83b7\u53d6\u6240\u6709\u5728\u7ebf\u5ba2\u6237\u7aef",level:4},{value:"\uff082\uff09\u901a\u8fc7ID\u83b7\u53d6",id:"2\u901a\u8fc7id\u83b7\u53d6",level:4},{value:"6.2 \u53d1\u9001\u6587\u672c\u7c7b\u6d88\u606f",id:"62-\u53d1\u9001\u6587\u672c\u7c7b\u6d88\u606f",level:3},{value:"6.3 \u53d1\u9001\u4e8c\u8fdb\u5236\u6d88\u606f",id:"63-\u53d1\u9001\u4e8c\u8fdb\u5236\u6d88\u606f",level:3},{value:"6.4 \u53d1\u9001\u5206\u5305\u7684\u4e8c\u8fdb\u5236",id:"64-\u53d1\u9001\u5206\u5305\u7684\u4e8c\u8fdb\u5236",level:3},{value:"6.5 \u76f4\u63a5\u53d1\u9001\u81ea\u5b9a\u4e49\u6784\u5efa\u7684\u6570\u636e\u5e27",id:"65-\u76f4\u63a5\u53d1\u9001\u81ea\u5b9a\u4e49\u6784\u5efa\u7684\u6570\u636e\u5e27",level:3},{value:"\u4e03\u3001\u670d\u52a1\u5668\u5e7f\u64ad\u53d1\u9001",id:"\u4e03\u670d\u52a1\u5668\u5e7f\u64ad\u53d1\u9001",level:2}],p={toc:s};function k(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,r.kt)("p",null,"WebSocket\u662f\u57fa\u4e8eHttp\u534f\u8bae\u7684\u5347\u7ea7\u534f\u8bae\uff0c\u6240\u4ee5\u5e94\u5f53\u6302\u8f7d\u5728http\u670d\u52a1\u5668\u6267\u884c\u3002"),(0,r.kt)("h2",{id:"\u4e8c\u53ef\u914d\u7f6e\u9879"},"\u4e8c\u3001\u53ef\u914d\u7f6e\u9879"),(0,r.kt)("p",null,"\u7ee7\u627f",(0,r.kt)("a",{parentName:"p",href:"/touchsocket/docs/createhttpservice"},"HttpService")),(0,r.kt)("h2",{id:"\u4e09\u652f\u6301\u63d2\u4ef6\u63a5\u53e3"},"\u4e09\u3001\u652f\u6301\u63d2\u4ef6\u63a5\u53e3"),(0,r.kt)("p",null,"\u652f\u6301",(0,r.kt)("strong",{parentName:"p"},"ITcpPlugin\u3001IHttpPlugin\u3001IWebSocketPlugin")),(0,r.kt)("p",null,"\u58f0\u660e\u81ea\u5b9a\u4e49\u5b9e\u4f8b\u7c7b\uff0c\u7136\u540e\u5b9e\u73b0",(0,r.kt)("strong",{parentName:"p"},"IWebSocketPlugin"),"\u63a5\u53e3\uff0c\u5373\u53ef\u5b9e\u73b0\u4e0b\u5217\u4e8b\u52a1\u7684\u89e6\u53d1\u3002\u6216\u8005\u7ee7\u627f\u81ea",(0,r.kt)("strong",{parentName:"p"},"WebSocketPluginBase"),"\u7c7b\uff0c\u91cd\u5199\u76f8\u5e94\u65b9\u6cd5\u5373\u53ef\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},"\u63d2\u4ef6\u65b9\u6cd5"),(0,r.kt)("th",{parentName:"tr",align:null},"\u529f\u80fd"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OnHandshaking"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5f53\u6536\u5230\u63e1\u624b\u8bf7\u6c42\u4e4b\u524d\uff0c\u53ef\u4ee5\u8fdb\u884c\u8fde\u63a5\u9a8c\u8bc1\u7b49")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OnHandshaked"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5f53\u6210\u529f\u63e1\u624b\u54cd\u5e94\u4e4b\u540e")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OnHandleWSDataFrame"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5f53\u6536\u5230Websocket\u7684\u6570\u636e\u62a5\u6587")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OnClosing"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5f53\u6536\u5230\u5173\u95ed\u8bf7\u6c42\u65f6")))),(0,r.kt)("h2",{id:"\u56db\u521b\u5efawebsocket\u670d\u52a1"},"\u56db\u3001\u521b\u5efaWebSocket\u670d\u52a1"),(0,r.kt)("h3",{id:"41-\u7b80\u5355\u901a\u8fc7\u63d2\u4ef6\u521b\u5efa"},"4.1 \u7b80\u5355\u901a\u8fc7\u63d2\u4ef6\u521b\u5efa"),(0,r.kt)("p",null,"\u901a\u8fc7\u63d2\u4ef6\u521b\u5efa\u7684\u8bdd\uff0c\u53ea\u80fd\u6307\u5b9a\u4e00\u4e2a\u7279\u6b8aurl\u8def\u7531\u3002\u5982\u679c\u60f3\u83b7\u5f97\u8fde\u63a5\u524d\u7684Http\u8bf7\u6c42\uff0c\u4e5f\u5fc5\u987b\u518d\u6dfb\u52a0\u4e00\u4e2a\u5b9e\u73b0IWebSocketPlugin\u63a5\u53e3\u7684\u63d2\u4ef6\uff0c\u7136\u540e\u4eceOnHandshaking\u65b9\u6cd5\u4e2d\u6355\u83b7\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'var service = new HttpService();\nservice.Setup(new TouchSocketConfig()//\u52a0\u8f7d\u914d\u7f6e\n .UsePlugin()\n .SetListenIPHosts(new IPHost[] { new IPHost(7789) })\n .ConfigureContainer(a =>\n {\n a.AddConsoleLogger();\n })\n .ConfigurePlugins(a =>\n {\n a.UseWebSocket()//\u6dfb\u52a0WebSocket\u529f\u80fd\n .SetWSUrl("/ws");\n //.SetCallback(WSCallback);//WSCallback\u56de\u8c03\u51fd\u6570\u662f\u5728WS\u6536\u5230\u6570\u636e\u65f6\u89e6\u53d1\u56de\u8c03\u7684\u3002\u4e0b\u9762\u4f1a\u7528\u63d2\u4ef6\uff0c\u6240\u4ee5\u6211\u4eec\u4e0d\u4f7f\u7528\u8fd9\u79cd\u65b9\u5f0f\n a.Add();//MyWebSocketPlugin\u662f\u7ee7\u627f\u81eaWebSocketPluginBase\u7684\u63d2\u4ef6\u3002\n }))\n .Start();\n\nservice.Logger.Info("Http\u670d\u52a1\u5668\u5df2\u542f\u52a8");\nservice.Logger.Info("ws://127.0.0.1:7789/ws");\n\n')),(0,r.kt)("p",null,"[\u63d2\u4ef6]"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'class MyWebSocketPlugin : WebSocketPluginBase\n{\n protected override void OnHandleWSDataFrame(HttpSocketClient client, WSDataFrameEventArgs e)\n {\n if (e.DataFrame.Opcode == WSDataType.Text)//\u6587\u672c\u6570\u636e\n {\n client.Logger.Info($"\u6536\u5230\u4fe1\u606f\uff1a{e.DataFrame.ToText()}");\n }\n else if (e.DataFrame.Opcode == WSDataType.Binary)//\u4e8c\u8fdb\u5236\n {\n byte[] data = e.DataFrame.PayloadData.ToArray();\n }\n }\n}\n')),(0,r.kt)("h3",{id:"42-\u901a\u8fc7webapi\u521b\u5efa"},"4.2 \u901a\u8fc7WebApi\u521b\u5efa"),(0,r.kt)("p",null,"\u901a\u8fc7WebApi\u7684\u65b9\u5f0f\u4f1a\u66f4\u52a0\u7075\u6d3b\uff0c\u4e5f\u80fd\u5f88\u65b9\u4fbf\u7684\u83b7\u5f97Http\u76f8\u5173\u53c2\u6570\u3002\u8fd8\u80fd\u5b9e\u73b0\u591a\u4e2aUrl\u7684\u8fde\u63a5\u8def\u7531\u3002\n\u5b9e\u73b0\u6b65\u9aa4\uff1a"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u5fc5\u987b\u542f\u7528\u63d2\u4ef6"),(0,r.kt)("li",{parentName:"ol"},"\u5fc5\u987b\u914d\u7f6eConfigureRpcStore\uff0c\u548c\u6ce8\u518cMyServer"),(0,r.kt)("li",{parentName:"ol"},"\u5fc5\u987b\u6dfb\u52a0WebApiParserPlugin")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'var service = new HttpService();\nservice.Setup(new TouchSocketConfig()//\u52a0\u8f7d\u914d\u7f6e\n .UsePlugin()\n .SetListenIPHosts(new IPHost[] { new IPHost(7789) })\n .ConfigureContainer(a =>\n {\n a.AddConsoleLogger();\n })\n .ConfigureRpcStore(a=> \n {\n a.RegisterServer();\n })\n .ConfigurePlugins(a =>\n {\n a.UseWebApi();\n a.UseWebSocket();//\u4e0d\u7528\u8bbe\u7f6e\u8fde\u63a5url\n }))\n .Start();\n\nConsole.WriteLine("\u670d\u52a1\u5668\u5df2\u542f\u52a8\uff0c\u53ef\u4f7f\u7528\u4e0b\u5217\u5730\u5740\u8fde\u63a5");\nConsole.WriteLine("ws://127.0.0.1:7789/MyServer/ConnectWS");\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyServer : RpcServer\n{\n private readonly ILog m_logger;\n\n public MyServer(ILog logger)\n {\n this.m_logger = logger;\n }\n\n [Router("/[api]/[action]")]\n [WebApi(HttpMethodType.GET, MethodFlags = MethodFlags.IncludeCallContext)]\n public void ConnectWS(IWebApiCallContext callContext)\n {\n if (callContext.Caller is HttpSocketClient socketClient)\n {\n if (socketClient.SwitchProtocolToWebSocket(callContext.HttpContext))\n {\n m_logger.Info("WS\u901a\u8fc7WebApi\u8fde\u63a5");\n }\n }\n }\n}\n')),(0,r.kt)("h3",{id:"43-\u521b\u5efa\u57fa\u4e8essl\u7684websocket\u670d\u52a1"},"4.3 \u521b\u5efa\u57fa\u4e8eSsl\u7684WebSocket\u670d\u52a1"),(0,r.kt)("p",null,"\u521b\u5efaWSs\u670d\u52a1\u5668\u65f6\uff0c\u5176\u4ed6\u914d\u7f6e\u4e0d\u53d8\uff0c\u53ea\u9700\u8981\u5728config\u4e2d\u914d\u7f6eSslOption\u4ee3\u7801\u5373\u53ef\u3002\n\u5728",(0,r.kt)("a",{parentName:"p",href:"https://gitee.com/RRQM_Home/RRQMBox/tree/master/Ssl%E8%AF%81%E4%B9%A6%E7%9B%B8%E5%85%B3"},"RRQMBox"),"\u4e2d\uff0c\u653e\u7f6e\u4e86\u4e00\u4e2a\u81ea\u5236Ssl\u8bc1\u4e66\uff0c\u5bc6\u7801\u4e3a\u201cRRQMSocket\u201d\u4ee5\u4f9b\u6d4b\u8bd5\u3002\u4f7f\u7528\u914d\u7f6e\u975e\u5e38\u65b9\u4fbf\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'var config = new TouchSocketConfig();\nconfig.UsePlugin()\n .SetReceiveType(ReceiveType.Auto)\n .SetListenIPHosts(new IPHost[] { new IPHost(7789) })\n .SetServiceSslOption(new ServiceSslOption() //Ssl\u914d\u7f6e\uff0c\u5f53\u4e3anull\u7684\u65f6\u5019\uff0c\u76f8\u5f53\u4e8e\u521b\u5efa\u4e86ws\u670d\u52a1\u5668\uff0c\u5f53\u8d4b\u503c\u7684\u65f6\u5019\uff0c\u76f8\u5f53\u4e8ewss\u670d\u52a1\u5668\u3002\n { \n Certificate = new X509Certificate2("RRQMSocket.pfx", "RRQMSocket"), \n SslProtocols = SslProtocols.Tls12 \n });\n')),(0,r.kt)("h2",{id:"\u4e94\u63a5\u6536\u6d88\u606f"},"\u4e94\u3001\u63a5\u6536\u6d88\u606f"),(0,r.kt)("h3",{id:"51-\u56de\u8c03\u63a5\u6536"},"5.1 \u56de\u8c03\u63a5\u6536"),(0,r.kt)("p",null,"\u5728\u6dfb\u52a0",(0,r.kt)("strong",{parentName:"p"},"WebSocketServerPlugin"),"\u63d2\u4ef6\u540e\uff0c\u53ef\u4ee5\u8c03\u7528",(0,r.kt)("strong",{parentName:"p"},"SetCallback"),"\u51fd\u6570\uff0c\u7136\u540e\u8bbe\u7f6e\u4e00\u4e2a\u56de\u8c03\u51fd\u6570\uff08\u5982\u4e0b\u6240\u793a\uff09\uff0c\u7136\u540e\u8be5\u51fd\u6570\u5728\u670d\u52a1\u5668\u6536\u5230\u4fe1\u606f\u65f6\uff0c\u4f1a\u89e6\u53d1\uff08\u5e76\u53d1\u89e6\u53d1\uff09\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'static void WSCallback(ITcpClientBase client, WSDataFrameEventArgs e)\n{\n switch (e.DataFrame.Opcode)\n {\n case WSDataType.Cont:\n Console.WriteLine($"\u6536\u5230\u4e2d\u95f4\u6570\u636e\uff0c\u957f\u5ea6\u4e3a\uff1a{e.DataFrame.PayloadLength}");\n break;\n case WSDataType.Text:\n Console.WriteLine(e.DataFrame.ToText());\n break;\n case WSDataType.Binary:\n if (e.DataFrame.FIN)\n {\n Console.WriteLine($"\u6536\u5230\u4e8c\u8fdb\u5236\u6570\u636e\uff0c\u957f\u5ea6\u4e3a\uff1a{e.DataFrame.PayloadLength}");\n }\n else\n {\n Console.WriteLine($"\u6536\u5230\u672a\u7ed3\u675f\u7684\u4e8c\u8fdb\u5236\u6570\u636e\uff0c\u957f\u5ea6\u4e3a\uff1a{e.DataFrame.PayloadLength}");\n }\n break;\n case WSDataType.Close:\n {\n Console.WriteLine("\u8fdc\u7a0b\u8bf7\u6c42\u65ad\u5f00");\n client.Close("\u65ad\u5f00");\n }\n\n break;\n case WSDataType.Ping:\n break;\n case WSDataType.Pong:\n break;\n default:\n break;\n }\n}\n')),(0,r.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u8be5\u51fd\u6570\uff0c\u53ef\u80fd\u88ab\u5e76\u53d1\u6267\u884c\u7684\uff0c\u6240\u4ee5\u5e94\u5f53\u505a\u597d\u7ebf\u7a0b\u5b89\u5168\u3002")),(0,r.kt)("h3",{id:"52-\u63d2\u4ef6\u63a5\u53e3\u63a5\u6536"},"5.2 \u63d2\u4ef6\u63a5\u53e3\u63a5\u6536"),(0,r.kt)("p",null,"WS\u670d\u52a1\u5668\uff0c\u867d\u7136\u662fHttp\u7684\u63d2\u4ef6\uff0c\u4f46\u662f\u4e5f\u80fd\u89e6\u53d1\u63d2\u4ef6\u63a5\u53e3\u3002\u9002\u7528\u4e8eWS\u7684\u63d2\u4ef6\u63a5\u53e3\u662f",(0,r.kt)("strong",{parentName:"p"},"IWebSocketPlugin"),"\uff08\u6216\u8005\u4ece",(0,r.kt)("strong",{parentName:"p"},"WebSocketPluginBase"),"\u7ee7\u627f\uff09\uff0c\u58f0\u660e\u4efb\u610f\u7c7b\uff0c\u5b9e\u73b0\u8be5\u63a5\u53e3\u5373\u53ef\u3002"),(0,r.kt)("p",null,"\u3010\u5b9a\u4e49\u63d2\u4ef6\u3011"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyWebSocketPlugin : WebSocketPluginBase\n{\n protected override void OnHandleWSDataFrame(HttpSocketClient client, WSDataFrameEventArgs e)\n {\n switch (e.DataFrame.Opcode)\n {\n case WSDataType.Cont:\n client.Logger.Info($"\u6536\u5230\u4e2d\u95f4\u6570\u636e\uff0c\u957f\u5ea6\u4e3a\uff1a{e.DataFrame.PayloadLength}");\n break;\n\n case WSDataType.Text:\n client.Logger.Info(e.DataFrame.ToText());\n break;\n\n case WSDataType.Binary:\n if (e.DataFrame.FIN)\n {\n client.Logger.Info($"\u6536\u5230\u4e8c\u8fdb\u5236\u6570\u636e\uff0c\u957f\u5ea6\u4e3a\uff1a{e.DataFrame.PayloadLength}");\n }\n else\n {\n client.Logger.Info($"\u6536\u5230\u672a\u7ed3\u675f\u7684\u4e8c\u8fdb\u5236\u6570\u636e\uff0c\u957f\u5ea6\u4e3a\uff1a{e.DataFrame.PayloadLength}");\n }\n break;\n\n case WSDataType.Close:\n {\n client.Logger.Info("\u8fdc\u7a0b\u8bf7\u6c42\u65ad\u5f00");\n client.Close("\u65ad\u5f00");\n }\n\n break;\n\n case WSDataType.Ping:\n break;\n\n case WSDataType.Pong:\n break;\n\n default:\n break;\n }\n }\n}\n')),(0,r.kt)("p",null,"\u3010\u4f7f\u7528\u3011"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{13}","{13}":!0},'var service = new HttpService();\nservice.Setup(new TouchSocketConfig()//\u52a0\u8f7d\u914d\u7f6e\n .UsePlugin()\n .SetListenIPHosts(new IPHost[] { new IPHost(7789) })\n .ConfigureContainer(a =>\n {\n a.AddConsoleLogger();\n })\n .ConfigurePlugins(a =>\n {\n a.UseWebSocket()//\u6dfb\u52a0WebSocket\u529f\u80fd\n .SetWSUrl("/ws");\n a.Add();//MyWebSocketPlugin\u662f\u7ee7\u627f\u81eaWebSocketPluginBase\u7684\u63d2\u4ef6\u3002\n }))\n .Start();\n')),(0,r.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u63d2\u4ef6\u7684\u6240\u6709\u51fd\u6570\uff0c\u90fd\u662f\u53ef\u80fd\u88ab\u5e76\u53d1\u6267\u884c\u7684\uff0c\u6240\u4ee5\u5e94\u5f53\u505a\u597d\u7ebf\u7a0b\u5b89\u5168\u3002")),(0,r.kt)("h2",{id:"\u516d\u56de\u590d\u54cd\u5e94\u6570\u636e"},"\u516d\u3001\u56de\u590d\u3001\u54cd\u5e94\u6570\u636e"),(0,r.kt)("p",null,"\u8981\u56de\u590dWebsocket\u6d88\u606f\uff0c\u5fc5\u987b\u4f7f\u7528",(0,r.kt)("strong",{parentName:"p"},"HttpSocketClient"),"\u5bf9\u8c61\u3002"),(0,r.kt)("h3",{id:"61-\u5982\u4f55\u83b7\u53d6socketclient"},"6.1 \u5982\u4f55\u83b7\u53d6SocketClient\uff1f"),(0,r.kt)("h4",{id:"1\u76f4\u63a5\u83b7\u53d6\u6240\u6709\u5728\u7ebf\u5ba2\u6237\u7aef"},"\uff081\uff09\u76f4\u63a5\u83b7\u53d6\u6240\u6709\u5728\u7ebf\u5ba2\u6237\u7aef"),(0,r.kt)("p",null,"\u901a\u8fc7",(0,r.kt)("inlineCode",{parentName:"p"},"service.GetClients"),"\u65b9\u6cd5\uff0c\u83b7\u53d6\u5f53\u524d\u5728\u7ebf\u7684\u6240\u6709\u5ba2\u6237\u7aef\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'HttpSocketClient[] socketClients = service.GetClients();\nforeach (var item in socketClients)\n{\n if (item.Protocol == Protocol.WebSocket)//\u5148\u5224\u65ad\u662f\u4e0d\u662fwebsocket\u534f\u8bae\n {\n if (item.ID == "id")//\u518d\u6309\u6307\u5b9aid\u53d1\u9001\uff0c\u6216\u8005\u76f4\u63a5\u5e7f\u64ad\u53d1\u9001\n {\n\n }\n }\n}\n')),(0,r.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"\u7531\u4e8eHttpSocketClient\u7684\u751f\u547d\u5468\u671f\u662f\u7531\u6846\u67b6\u63a7\u5236\u7684\uff0c\u6240\u4ee5\u6700\u597d\u5c3d\u91cf\u4e0d\u8981\u76f4\u63a5\u5f15\u7528\u8be5\u5b9e\u4f8b\uff0c\u53ef\u4ee5\u5f15\u7528HttpSocketClient.ID\uff0c\u7136\u540e\u518d\u901a\u8fc7\u670d\u52a1\u5668\u67e5\u627e\u3002")),(0,r.kt)("h4",{id:"2\u901a\u8fc7id\u83b7\u53d6"},"\uff082\uff09\u901a\u8fc7ID\u83b7\u53d6"),(0,r.kt)("p",null,"\u5148\u8c03\u7528",(0,r.kt)("inlineCode",{parentName:"p"},"service.GetIDs"),"\u65b9\u6cd5\uff0c\u83b7\u53d6\u5f53\u524d\u5728\u7ebf\u7684\u6240\u6709\u5ba2\u6237\u7aef\u7684ID\uff0c\u7136\u540e\u9009\u62e9\u9700\u8981\u7684ID\uff0c\u901a\u8fc7TryGetSocketClient\u65b9\u6cd5\uff0c\u83b7\u53d6\u5230\u60f3\u8981\u7684\u5ba2\u6237\u7aef\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"string[] ids = service.GetIDs();\nif (service.TryGetSocketClient(ids[0], out HttpSocketClient socketClient))\n{\n}\n")),(0,r.kt)("h3",{id:"62-\u53d1\u9001\u6587\u672c\u7c7b\u6d88\u606f"},"6.2 \u53d1\u9001\u6587\u672c\u7c7b\u6d88\u606f"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'socketClient.SendWithWS("Text");\n')),(0,r.kt)("h3",{id:"63-\u53d1\u9001\u4e8c\u8fdb\u5236\u6d88\u606f"},"6.3 \u53d1\u9001\u4e8c\u8fdb\u5236\u6d88\u606f"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"socketClient.SendWithWS(new byte[10]);\n")),(0,r.kt)("h3",{id:"64-\u53d1\u9001\u5206\u5305\u7684\u4e8c\u8fdb\u5236"},"6.4 \u53d1\u9001\u5206\u5305\u7684\u4e8c\u8fdb\u5236"),(0,r.kt)("p",null,"\u4f8b\u5982\uff1a\u53d1\u9001\u7684\u6570\u636e\u4e3a{0,1,2,3,4,5,6,7,8,9}\uff0c\u5f53\u8bbe\u7f6epackageSize\u4e3a5\u65f6\uff0c\u4f1a\u5148\u53d1\u9001{0,1,2,3,4}\u4f5c\u4e3a\u5934\u5305\uff0c\u7136\u540e\u53d1\u9001{5,6,7,8,9}\u7684\u540e\u7ee7\u5305\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"byte[] data = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };\nsocketClient.SubSendWithWS(data, 5);\n")),(0,r.kt)("h3",{id:"65-\u76f4\u63a5\u53d1\u9001\u81ea\u5b9a\u4e49\u6784\u5efa\u7684\u6570\u636e\u5e27"},"6.5 \u76f4\u63a5\u53d1\u9001\u81ea\u5b9a\u4e49\u6784\u5efa\u7684\u6570\u636e\u5e27"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'WSDataFrame frame=new WSDataFrame();\nframe.Opcode= WSDataType.Text;\nframe.FIN= true;\nframe.RSV1= true;\nframe.RSV2= true;\nframe.RSV3= true;\nframe.AppendText("I");\nframe.AppendText("Love");\nframe.AppendText("U");\nsocketClient.SendWithWS(frame);\n')),(0,r.kt)("admonition",{title:"\u5907\u6ce8",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"\u6b64\u90e8\u5206\u529f\u80fd\u5c31\u9700\u8981\u4f60\u5bf9Websocket\u6709\u5145\u5206\u4e86\u89e3\u624d\u53ef\u4ee5\u64cd\u4f5c\u3002")),(0,r.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"Websocket\u7684\u6240\u6709\u53d1\u9001\uff0c\u90fd\u662f\u5f62\u5982",(0,r.kt)("strong",{parentName:"p"},"SendWithWS"),"\u7684\u6269\u5c55\u65b9\u6cd5\u3002\u4e0d\u53ef\u76f4\u63a5Send\u3002")),(0,r.kt)("p",null,"\u4e0b\u9762\u6f14\u793a\u5982\u4f55\u5728\u63d2\u4ef6\u76f4\u63a5\u54cd\u5e94"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{9}","{9}":!0},'public class MyWebSocketPlugin : WebSocketPluginBase\n{\n protected override void OnHandleWSDataFrame(HttpSocketClient client, WSDataFrameEventArgs e)\n {\n switch (e.DataFrame.Opcode)\n {\n case WSDataType.Text:\n client.Logger.Info(e.DataFrame.ToText());\n client.SendWithWS("\u6211\u5df2\u6536\u5230");\n break;\n default:\n break;\n }\n }\n}\n')),(0,r.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"\u5982\u679c\u662f\u4f7f\u7528\u7684WSCallback\u56de\u8c03\u63a5\u6536\uff0c\u5219\u9700\u8981\u5c06",(0,r.kt)("strong",{parentName:"p"},"ITcpClientBase"),"\u5bf9\u8c61\uff0c\u5f3a\u5236\u8f6c\u6362\u4e3a",(0,r.kt)("strong",{parentName:"p"},"HttpSocketClient"),"\u3002"),(0,r.kt)("pre",{parentName:"admonition"},(0,r.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{6}","{6}":!0},'static void WSCallback(ITcpClientBase client, WSDataFrameEventArgs e)\n{\n switch (e.DataFrame.Opcode)\n {\n case WSDataType.Text:\n ((HttpSocketClient)client).SendWithWS("\u6211\u5df2\u6536\u5230");\n break;\n default:\n break;\n }\n}\n'))),(0,r.kt)("h2",{id:"\u4e03\u670d\u52a1\u5668\u5e7f\u64ad\u53d1\u9001"},"\u4e03\u3001\u670d\u52a1\u5668\u5e7f\u64ad\u53d1\u9001"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'//\u5e7f\u64ad\u7ed9\u6240\u6709\u4eba\nforeach (var item in service.GetClients())\n{\n if (item.Protocol== Protocol.WebSocket)\n {\n item.SendWithWS("\u5e7f\u64ad");\n }\n}\n')),(0,r.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u5728\u53d1\u9001\u65f6\uff0c\u8fd8\u53ef\u4ee5\u81ea\u5df1\u8fc7\u6ee4ID\u3002")))}k.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[5873],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});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 l(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=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},k={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,l=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(n),d=r,m=u["".concat(c,".").concat(d)]||u[d]||k[d]||l;return n?a.createElement(m,o(o({ref:t},p),{},{components:n})):a.createElement(m,o({ref:t},p))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=u;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:r,o[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>k,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var a=n(7462),r=(n(7294),n(3905));const l={id:"createwebsocketservice",title:"\u521b\u5efaWebSocket\u670d\u52a1\u5668"},o=void 0,i={unversionedId:"createwebsocketservice",id:"createwebsocketservice",title:"\u521b\u5efaWebSocket\u670d\u52a1\u5668",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/createwebsocketservice.mdx",sourceDirName:".",slug:"/createwebsocketservice",permalink:"/touchsocket/docs/createwebsocketservice",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/createwebsocketservice.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1677379097,formattedLastUpdatedAt:"Feb 26, 2023",frontMatter:{id:"createwebsocketservice",title:"\u521b\u5efaWebSocket\u670d\u52a1\u5668"},sidebar:"docs",previous:{title:"\u4ea7\u54c1\u53ca\u67b6\u6784\u4ecb\u7ecd",permalink:"/touchsocket/docs/websocketdescription"},next:{title:"\u521b\u5efaWebSocket\u5ba2\u6237\u7aef",permalink:"/touchsocket/docs/createwebsocketclient"}},c={},s=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u53ef\u914d\u7f6e\u9879",id:"\u4e8c\u53ef\u914d\u7f6e\u9879",level:2},{value:"\u4e09\u3001\u652f\u6301\u63d2\u4ef6\u63a5\u53e3",id:"\u4e09\u652f\u6301\u63d2\u4ef6\u63a5\u53e3",level:2},{value:"\u56db\u3001\u521b\u5efaWebSocket\u670d\u52a1",id:"\u56db\u521b\u5efawebsocket\u670d\u52a1",level:2},{value:"4.1 \u7b80\u5355\u901a\u8fc7\u63d2\u4ef6\u521b\u5efa",id:"41-\u7b80\u5355\u901a\u8fc7\u63d2\u4ef6\u521b\u5efa",level:3},{value:"4.2 \u901a\u8fc7WebApi\u521b\u5efa",id:"42-\u901a\u8fc7webapi\u521b\u5efa",level:3},{value:"4.3 \u521b\u5efa\u57fa\u4e8eSsl\u7684WebSocket\u670d\u52a1",id:"43-\u521b\u5efa\u57fa\u4e8essl\u7684websocket\u670d\u52a1",level:3},{value:"\u4e94\u3001\u63a5\u6536\u6d88\u606f",id:"\u4e94\u63a5\u6536\u6d88\u606f",level:2},{value:"5.1 \u56de\u8c03\u63a5\u6536",id:"51-\u56de\u8c03\u63a5\u6536",level:3},{value:"5.2 \u63d2\u4ef6\u63a5\u53e3\u63a5\u6536",id:"52-\u63d2\u4ef6\u63a5\u53e3\u63a5\u6536",level:3},{value:"\u516d\u3001\u56de\u590d\u3001\u54cd\u5e94\u6570\u636e",id:"\u516d\u56de\u590d\u54cd\u5e94\u6570\u636e",level:2},{value:"6.1 \u5982\u4f55\u83b7\u53d6SocketClient\uff1f",id:"61-\u5982\u4f55\u83b7\u53d6socketclient",level:3},{value:"\uff081\uff09\u76f4\u63a5\u83b7\u53d6\u6240\u6709\u5728\u7ebf\u5ba2\u6237\u7aef",id:"1\u76f4\u63a5\u83b7\u53d6\u6240\u6709\u5728\u7ebf\u5ba2\u6237\u7aef",level:4},{value:"\uff082\uff09\u901a\u8fc7ID\u83b7\u53d6",id:"2\u901a\u8fc7id\u83b7\u53d6",level:4},{value:"6.2 \u53d1\u9001\u6587\u672c\u7c7b\u6d88\u606f",id:"62-\u53d1\u9001\u6587\u672c\u7c7b\u6d88\u606f",level:3},{value:"6.3 \u53d1\u9001\u4e8c\u8fdb\u5236\u6d88\u606f",id:"63-\u53d1\u9001\u4e8c\u8fdb\u5236\u6d88\u606f",level:3},{value:"6.4 \u53d1\u9001\u5206\u5305\u7684\u4e8c\u8fdb\u5236",id:"64-\u53d1\u9001\u5206\u5305\u7684\u4e8c\u8fdb\u5236",level:3},{value:"6.5 \u76f4\u63a5\u53d1\u9001\u81ea\u5b9a\u4e49\u6784\u5efa\u7684\u6570\u636e\u5e27",id:"65-\u76f4\u63a5\u53d1\u9001\u81ea\u5b9a\u4e49\u6784\u5efa\u7684\u6570\u636e\u5e27",level:3},{value:"\u4e03\u3001\u670d\u52a1\u5668\u5e7f\u64ad\u53d1\u9001",id:"\u4e03\u670d\u52a1\u5668\u5e7f\u64ad\u53d1\u9001",level:2}],p={toc:s};function k(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,r.kt)("p",null,"WebSocket\u662f\u57fa\u4e8eHttp\u534f\u8bae\u7684\u5347\u7ea7\u534f\u8bae\uff0c\u6240\u4ee5\u5e94\u5f53\u6302\u8f7d\u5728http\u670d\u52a1\u5668\u6267\u884c\u3002"),(0,r.kt)("h2",{id:"\u4e8c\u53ef\u914d\u7f6e\u9879"},"\u4e8c\u3001\u53ef\u914d\u7f6e\u9879"),(0,r.kt)("p",null,"\u7ee7\u627f",(0,r.kt)("a",{parentName:"p",href:"/touchsocket/docs/createhttpservice"},"HttpService")),(0,r.kt)("h2",{id:"\u4e09\u652f\u6301\u63d2\u4ef6\u63a5\u53e3"},"\u4e09\u3001\u652f\u6301\u63d2\u4ef6\u63a5\u53e3"),(0,r.kt)("p",null,"\u652f\u6301",(0,r.kt)("strong",{parentName:"p"},"ITcpPlugin\u3001IHttpPlugin\u3001IWebSocketPlugin")),(0,r.kt)("p",null,"\u58f0\u660e\u81ea\u5b9a\u4e49\u5b9e\u4f8b\u7c7b\uff0c\u7136\u540e\u5b9e\u73b0",(0,r.kt)("strong",{parentName:"p"},"IWebSocketPlugin"),"\u63a5\u53e3\uff0c\u5373\u53ef\u5b9e\u73b0\u4e0b\u5217\u4e8b\u52a1\u7684\u89e6\u53d1\u3002\u6216\u8005\u7ee7\u627f\u81ea",(0,r.kt)("strong",{parentName:"p"},"WebSocketPluginBase"),"\u7c7b\uff0c\u91cd\u5199\u76f8\u5e94\u65b9\u6cd5\u5373\u53ef\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},"\u63d2\u4ef6\u65b9\u6cd5"),(0,r.kt)("th",{parentName:"tr",align:null},"\u529f\u80fd"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OnHandshaking"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5f53\u6536\u5230\u63e1\u624b\u8bf7\u6c42\u4e4b\u524d\uff0c\u53ef\u4ee5\u8fdb\u884c\u8fde\u63a5\u9a8c\u8bc1\u7b49")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OnHandshaked"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5f53\u6210\u529f\u63e1\u624b\u54cd\u5e94\u4e4b\u540e")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OnHandleWSDataFrame"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5f53\u6536\u5230Websocket\u7684\u6570\u636e\u62a5\u6587")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"OnClosing"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5f53\u6536\u5230\u5173\u95ed\u8bf7\u6c42\u65f6")))),(0,r.kt)("h2",{id:"\u56db\u521b\u5efawebsocket\u670d\u52a1"},"\u56db\u3001\u521b\u5efaWebSocket\u670d\u52a1"),(0,r.kt)("h3",{id:"41-\u7b80\u5355\u901a\u8fc7\u63d2\u4ef6\u521b\u5efa"},"4.1 \u7b80\u5355\u901a\u8fc7\u63d2\u4ef6\u521b\u5efa"),(0,r.kt)("p",null,"\u901a\u8fc7\u63d2\u4ef6\u521b\u5efa\u7684\u8bdd\uff0c\u53ea\u80fd\u6307\u5b9a\u4e00\u4e2a\u7279\u6b8aurl\u8def\u7531\u3002\u5982\u679c\u60f3\u83b7\u5f97\u8fde\u63a5\u524d\u7684Http\u8bf7\u6c42\uff0c\u4e5f\u5fc5\u987b\u518d\u6dfb\u52a0\u4e00\u4e2a\u5b9e\u73b0IWebSocketPlugin\u63a5\u53e3\u7684\u63d2\u4ef6\uff0c\u7136\u540e\u4eceOnHandshaking\u65b9\u6cd5\u4e2d\u6355\u83b7\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'var service = new HttpService();\nservice.Setup(new TouchSocketConfig()//\u52a0\u8f7d\u914d\u7f6e\n .UsePlugin()\n .SetListenIPHosts(new IPHost[] { new IPHost(7789) })\n .ConfigureContainer(a =>\n {\n a.AddConsoleLogger();\n })\n .ConfigurePlugins(a =>\n {\n a.UseWebSocket()//\u6dfb\u52a0WebSocket\u529f\u80fd\n .SetWSUrl("/ws");\n //.SetCallback(WSCallback);//WSCallback\u56de\u8c03\u51fd\u6570\u662f\u5728WS\u6536\u5230\u6570\u636e\u65f6\u89e6\u53d1\u56de\u8c03\u7684\u3002\u4e0b\u9762\u4f1a\u7528\u63d2\u4ef6\uff0c\u6240\u4ee5\u6211\u4eec\u4e0d\u4f7f\u7528\u8fd9\u79cd\u65b9\u5f0f\n a.Add();//MyWebSocketPlugin\u662f\u7ee7\u627f\u81eaWebSocketPluginBase\u7684\u63d2\u4ef6\u3002\n }))\n .Start();\n\nservice.Logger.Info("Http\u670d\u52a1\u5668\u5df2\u542f\u52a8");\nservice.Logger.Info("ws://127.0.0.1:7789/ws");\n\n')),(0,r.kt)("p",null,"[\u63d2\u4ef6]"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'class MyWebSocketPlugin : WebSocketPluginBase\n{\n protected override void OnHandleWSDataFrame(HttpSocketClient client, WSDataFrameEventArgs e)\n {\n if (e.DataFrame.Opcode == WSDataType.Text)//\u6587\u672c\u6570\u636e\n {\n client.Logger.Info($"\u6536\u5230\u4fe1\u606f\uff1a{e.DataFrame.ToText()}");\n }\n else if (e.DataFrame.Opcode == WSDataType.Binary)//\u4e8c\u8fdb\u5236\n {\n byte[] data = e.DataFrame.PayloadData.ToArray();\n }\n }\n}\n')),(0,r.kt)("h3",{id:"42-\u901a\u8fc7webapi\u521b\u5efa"},"4.2 \u901a\u8fc7WebApi\u521b\u5efa"),(0,r.kt)("p",null,"\u901a\u8fc7WebApi\u7684\u65b9\u5f0f\u4f1a\u66f4\u52a0\u7075\u6d3b\uff0c\u4e5f\u80fd\u5f88\u65b9\u4fbf\u7684\u83b7\u5f97Http\u76f8\u5173\u53c2\u6570\u3002\u8fd8\u80fd\u5b9e\u73b0\u591a\u4e2aUrl\u7684\u8fde\u63a5\u8def\u7531\u3002\n\u5b9e\u73b0\u6b65\u9aa4\uff1a"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u5fc5\u987b\u542f\u7528\u63d2\u4ef6"),(0,r.kt)("li",{parentName:"ol"},"\u5fc5\u987b\u914d\u7f6eConfigureRpcStore\uff0c\u548c\u6ce8\u518cMyServer"),(0,r.kt)("li",{parentName:"ol"},"\u5fc5\u987b\u6dfb\u52a0WebApiParserPlugin")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'var service = new HttpService();\nservice.Setup(new TouchSocketConfig()//\u52a0\u8f7d\u914d\u7f6e\n .UsePlugin()\n .SetListenIPHosts(new IPHost[] { new IPHost(7789) })\n .ConfigureContainer(a =>\n {\n a.AddConsoleLogger();\n })\n .ConfigureRpcStore(a=> \n {\n a.RegisterServer();\n })\n .ConfigurePlugins(a =>\n {\n a.UseWebApi();\n a.UseWebSocket();//\u4e0d\u7528\u8bbe\u7f6e\u8fde\u63a5url\n }))\n .Start();\n\nConsole.WriteLine("\u670d\u52a1\u5668\u5df2\u542f\u52a8\uff0c\u53ef\u4f7f\u7528\u4e0b\u5217\u5730\u5740\u8fde\u63a5");\nConsole.WriteLine("ws://127.0.0.1:7789/MyServer/ConnectWS");\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyServer : RpcServer\n{\n private readonly ILog m_logger;\n\n public MyServer(ILog logger)\n {\n this.m_logger = logger;\n }\n\n [Router("/[api]/[action]")]\n [WebApi(HttpMethodType.GET, MethodFlags = MethodFlags.IncludeCallContext)]\n public void ConnectWS(IWebApiCallContext callContext)\n {\n if (callContext.Caller is HttpSocketClient socketClient)\n {\n if (socketClient.SwitchProtocolToWebSocket(callContext.HttpContext))\n {\n m_logger.Info("WS\u901a\u8fc7WebApi\u8fde\u63a5");\n }\n }\n }\n}\n')),(0,r.kt)("h3",{id:"43-\u521b\u5efa\u57fa\u4e8essl\u7684websocket\u670d\u52a1"},"4.3 \u521b\u5efa\u57fa\u4e8eSsl\u7684WebSocket\u670d\u52a1"),(0,r.kt)("p",null,"\u521b\u5efaWSs\u670d\u52a1\u5668\u65f6\uff0c\u5176\u4ed6\u914d\u7f6e\u4e0d\u53d8\uff0c\u53ea\u9700\u8981\u5728config\u4e2d\u914d\u7f6eSslOption\u4ee3\u7801\u5373\u53ef\u3002\n\u5728",(0,r.kt)("a",{parentName:"p",href:"https://gitee.com/RRQM_Home/RRQMBox/tree/master/Ssl%E8%AF%81%E4%B9%A6%E7%9B%B8%E5%85%B3"},"RRQMBox"),"\u4e2d\uff0c\u653e\u7f6e\u4e86\u4e00\u4e2a\u81ea\u5236Ssl\u8bc1\u4e66\uff0c\u5bc6\u7801\u4e3a\u201cRRQMSocket\u201d\u4ee5\u4f9b\u6d4b\u8bd5\u3002\u4f7f\u7528\u914d\u7f6e\u975e\u5e38\u65b9\u4fbf\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'var config = new TouchSocketConfig();\nconfig.UsePlugin()\n .SetReceiveType(ReceiveType.Auto)\n .SetListenIPHosts(new IPHost[] { new IPHost(7789) })\n .SetServiceSslOption(new ServiceSslOption() //Ssl\u914d\u7f6e\uff0c\u5f53\u4e3anull\u7684\u65f6\u5019\uff0c\u76f8\u5f53\u4e8e\u521b\u5efa\u4e86ws\u670d\u52a1\u5668\uff0c\u5f53\u8d4b\u503c\u7684\u65f6\u5019\uff0c\u76f8\u5f53\u4e8ewss\u670d\u52a1\u5668\u3002\n { \n Certificate = new X509Certificate2("RRQMSocket.pfx", "RRQMSocket"), \n SslProtocols = SslProtocols.Tls12 \n });\n')),(0,r.kt)("h2",{id:"\u4e94\u63a5\u6536\u6d88\u606f"},"\u4e94\u3001\u63a5\u6536\u6d88\u606f"),(0,r.kt)("h3",{id:"51-\u56de\u8c03\u63a5\u6536"},"5.1 \u56de\u8c03\u63a5\u6536"),(0,r.kt)("p",null,"\u5728\u6dfb\u52a0",(0,r.kt)("strong",{parentName:"p"},"WebSocketServerPlugin"),"\u63d2\u4ef6\u540e\uff0c\u53ef\u4ee5\u8c03\u7528",(0,r.kt)("strong",{parentName:"p"},"SetCallback"),"\u51fd\u6570\uff0c\u7136\u540e\u8bbe\u7f6e\u4e00\u4e2a\u56de\u8c03\u51fd\u6570\uff08\u5982\u4e0b\u6240\u793a\uff09\uff0c\u7136\u540e\u8be5\u51fd\u6570\u5728\u670d\u52a1\u5668\u6536\u5230\u4fe1\u606f\u65f6\uff0c\u4f1a\u89e6\u53d1\uff08\u5e76\u53d1\u89e6\u53d1\uff09\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'static void WSCallback(ITcpClientBase client, WSDataFrameEventArgs e)\n{\n switch (e.DataFrame.Opcode)\n {\n case WSDataType.Cont:\n Console.WriteLine($"\u6536\u5230\u4e2d\u95f4\u6570\u636e\uff0c\u957f\u5ea6\u4e3a\uff1a{e.DataFrame.PayloadLength}");\n break;\n case WSDataType.Text:\n Console.WriteLine(e.DataFrame.ToText());\n break;\n case WSDataType.Binary:\n if (e.DataFrame.FIN)\n {\n Console.WriteLine($"\u6536\u5230\u4e8c\u8fdb\u5236\u6570\u636e\uff0c\u957f\u5ea6\u4e3a\uff1a{e.DataFrame.PayloadLength}");\n }\n else\n {\n Console.WriteLine($"\u6536\u5230\u672a\u7ed3\u675f\u7684\u4e8c\u8fdb\u5236\u6570\u636e\uff0c\u957f\u5ea6\u4e3a\uff1a{e.DataFrame.PayloadLength}");\n }\n break;\n case WSDataType.Close:\n {\n Console.WriteLine("\u8fdc\u7a0b\u8bf7\u6c42\u65ad\u5f00");\n client.Close("\u65ad\u5f00");\n }\n\n break;\n case WSDataType.Ping:\n break;\n case WSDataType.Pong:\n break;\n default:\n break;\n }\n}\n')),(0,r.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u8be5\u51fd\u6570\uff0c\u53ef\u80fd\u88ab\u5e76\u53d1\u6267\u884c\u7684\uff0c\u6240\u4ee5\u5e94\u5f53\u505a\u597d\u7ebf\u7a0b\u5b89\u5168\u3002")),(0,r.kt)("h3",{id:"52-\u63d2\u4ef6\u63a5\u53e3\u63a5\u6536"},"5.2 \u63d2\u4ef6\u63a5\u53e3\u63a5\u6536"),(0,r.kt)("p",null,"WS\u670d\u52a1\u5668\uff0c\u867d\u7136\u662fHttp\u7684\u63d2\u4ef6\uff0c\u4f46\u662f\u4e5f\u80fd\u89e6\u53d1\u63d2\u4ef6\u63a5\u53e3\u3002\u9002\u7528\u4e8eWS\u7684\u63d2\u4ef6\u63a5\u53e3\u662f",(0,r.kt)("strong",{parentName:"p"},"IWebSocketPlugin"),"\uff08\u6216\u8005\u4ece",(0,r.kt)("strong",{parentName:"p"},"WebSocketPluginBase"),"\u7ee7\u627f\uff09\uff0c\u58f0\u660e\u4efb\u610f\u7c7b\uff0c\u5b9e\u73b0\u8be5\u63a5\u53e3\u5373\u53ef\u3002"),(0,r.kt)("p",null,"\u3010\u5b9a\u4e49\u63d2\u4ef6\u3011"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyWebSocketPlugin : WebSocketPluginBase\n{\n protected override void OnHandleWSDataFrame(HttpSocketClient client, WSDataFrameEventArgs e)\n {\n switch (e.DataFrame.Opcode)\n {\n case WSDataType.Cont:\n client.Logger.Info($"\u6536\u5230\u4e2d\u95f4\u6570\u636e\uff0c\u957f\u5ea6\u4e3a\uff1a{e.DataFrame.PayloadLength}");\n break;\n\n case WSDataType.Text:\n client.Logger.Info(e.DataFrame.ToText());\n break;\n\n case WSDataType.Binary:\n if (e.DataFrame.FIN)\n {\n client.Logger.Info($"\u6536\u5230\u4e8c\u8fdb\u5236\u6570\u636e\uff0c\u957f\u5ea6\u4e3a\uff1a{e.DataFrame.PayloadLength}");\n }\n else\n {\n client.Logger.Info($"\u6536\u5230\u672a\u7ed3\u675f\u7684\u4e8c\u8fdb\u5236\u6570\u636e\uff0c\u957f\u5ea6\u4e3a\uff1a{e.DataFrame.PayloadLength}");\n }\n break;\n\n case WSDataType.Close:\n {\n client.Logger.Info("\u8fdc\u7a0b\u8bf7\u6c42\u65ad\u5f00");\n client.Close("\u65ad\u5f00");\n }\n\n break;\n\n case WSDataType.Ping:\n break;\n\n case WSDataType.Pong:\n break;\n\n default:\n break;\n }\n }\n}\n')),(0,r.kt)("p",null,"\u3010\u4f7f\u7528\u3011"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{13}","{13}":!0},'var service = new HttpService();\nservice.Setup(new TouchSocketConfig()//\u52a0\u8f7d\u914d\u7f6e\n .UsePlugin()\n .SetListenIPHosts(new IPHost[] { new IPHost(7789) })\n .ConfigureContainer(a =>\n {\n a.AddConsoleLogger();\n })\n .ConfigurePlugins(a =>\n {\n a.UseWebSocket()//\u6dfb\u52a0WebSocket\u529f\u80fd\n .SetWSUrl("/ws");\n a.Add();//MyWebSocketPlugin\u662f\u7ee7\u627f\u81eaWebSocketPluginBase\u7684\u63d2\u4ef6\u3002\n }))\n .Start();\n')),(0,r.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u63d2\u4ef6\u7684\u6240\u6709\u51fd\u6570\uff0c\u90fd\u662f\u53ef\u80fd\u88ab\u5e76\u53d1\u6267\u884c\u7684\uff0c\u6240\u4ee5\u5e94\u5f53\u505a\u597d\u7ebf\u7a0b\u5b89\u5168\u3002")),(0,r.kt)("h2",{id:"\u516d\u56de\u590d\u54cd\u5e94\u6570\u636e"},"\u516d\u3001\u56de\u590d\u3001\u54cd\u5e94\u6570\u636e"),(0,r.kt)("p",null,"\u8981\u56de\u590dWebsocket\u6d88\u606f\uff0c\u5fc5\u987b\u4f7f\u7528",(0,r.kt)("strong",{parentName:"p"},"HttpSocketClient"),"\u5bf9\u8c61\u3002"),(0,r.kt)("h3",{id:"61-\u5982\u4f55\u83b7\u53d6socketclient"},"6.1 \u5982\u4f55\u83b7\u53d6SocketClient\uff1f"),(0,r.kt)("h4",{id:"1\u76f4\u63a5\u83b7\u53d6\u6240\u6709\u5728\u7ebf\u5ba2\u6237\u7aef"},"\uff081\uff09\u76f4\u63a5\u83b7\u53d6\u6240\u6709\u5728\u7ebf\u5ba2\u6237\u7aef"),(0,r.kt)("p",null,"\u901a\u8fc7",(0,r.kt)("inlineCode",{parentName:"p"},"service.GetClients"),"\u65b9\u6cd5\uff0c\u83b7\u53d6\u5f53\u524d\u5728\u7ebf\u7684\u6240\u6709\u5ba2\u6237\u7aef\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'HttpSocketClient[] socketClients = service.GetClients();\nforeach (var item in socketClients)\n{\n if (item.Protocol == Protocol.WebSocket)//\u5148\u5224\u65ad\u662f\u4e0d\u662fwebsocket\u534f\u8bae\n {\n if (item.ID == "id")//\u518d\u6309\u6307\u5b9aid\u53d1\u9001\uff0c\u6216\u8005\u76f4\u63a5\u5e7f\u64ad\u53d1\u9001\n {\n\n }\n }\n}\n')),(0,r.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"\u7531\u4e8eHttpSocketClient\u7684\u751f\u547d\u5468\u671f\u662f\u7531\u6846\u67b6\u63a7\u5236\u7684\uff0c\u6240\u4ee5\u6700\u597d\u5c3d\u91cf\u4e0d\u8981\u76f4\u63a5\u5f15\u7528\u8be5\u5b9e\u4f8b\uff0c\u53ef\u4ee5\u5f15\u7528HttpSocketClient.ID\uff0c\u7136\u540e\u518d\u901a\u8fc7\u670d\u52a1\u5668\u67e5\u627e\u3002")),(0,r.kt)("h4",{id:"2\u901a\u8fc7id\u83b7\u53d6"},"\uff082\uff09\u901a\u8fc7ID\u83b7\u53d6"),(0,r.kt)("p",null,"\u5148\u8c03\u7528",(0,r.kt)("inlineCode",{parentName:"p"},"service.GetIDs"),"\u65b9\u6cd5\uff0c\u83b7\u53d6\u5f53\u524d\u5728\u7ebf\u7684\u6240\u6709\u5ba2\u6237\u7aef\u7684ID\uff0c\u7136\u540e\u9009\u62e9\u9700\u8981\u7684ID\uff0c\u901a\u8fc7TryGetSocketClient\u65b9\u6cd5\uff0c\u83b7\u53d6\u5230\u60f3\u8981\u7684\u5ba2\u6237\u7aef\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"string[] ids = service.GetIDs();\nif (service.TryGetSocketClient(ids[0], out HttpSocketClient socketClient))\n{\n}\n")),(0,r.kt)("h3",{id:"62-\u53d1\u9001\u6587\u672c\u7c7b\u6d88\u606f"},"6.2 \u53d1\u9001\u6587\u672c\u7c7b\u6d88\u606f"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'socketClient.SendWithWS("Text");\n')),(0,r.kt)("h3",{id:"63-\u53d1\u9001\u4e8c\u8fdb\u5236\u6d88\u606f"},"6.3 \u53d1\u9001\u4e8c\u8fdb\u5236\u6d88\u606f"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"socketClient.SendWithWS(new byte[10]);\n")),(0,r.kt)("h3",{id:"64-\u53d1\u9001\u5206\u5305\u7684\u4e8c\u8fdb\u5236"},"6.4 \u53d1\u9001\u5206\u5305\u7684\u4e8c\u8fdb\u5236"),(0,r.kt)("p",null,"\u4f8b\u5982\uff1a\u53d1\u9001\u7684\u6570\u636e\u4e3a{0,1,2,3,4,5,6,7,8,9}\uff0c\u5f53\u8bbe\u7f6epackageSize\u4e3a5\u65f6\uff0c\u4f1a\u5148\u53d1\u9001{0,1,2,3,4}\u4f5c\u4e3a\u5934\u5305\uff0c\u7136\u540e\u53d1\u9001{5,6,7,8,9}\u7684\u540e\u7ee7\u5305\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"byte[] data = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };\nsocketClient.SubSendWithWS(data, 5);\n")),(0,r.kt)("h3",{id:"65-\u76f4\u63a5\u53d1\u9001\u81ea\u5b9a\u4e49\u6784\u5efa\u7684\u6570\u636e\u5e27"},"6.5 \u76f4\u63a5\u53d1\u9001\u81ea\u5b9a\u4e49\u6784\u5efa\u7684\u6570\u636e\u5e27"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'WSDataFrame frame=new WSDataFrame();\nframe.Opcode= WSDataType.Text;\nframe.FIN= true;\nframe.RSV1= true;\nframe.RSV2= true;\nframe.RSV3= true;\nframe.AppendText("I");\nframe.AppendText("Love");\nframe.AppendText("U");\nsocketClient.SendWithWS(frame);\n')),(0,r.kt)("admonition",{title:"\u5907\u6ce8",type:"info"},(0,r.kt)("p",{parentName:"admonition"},"\u6b64\u90e8\u5206\u529f\u80fd\u5c31\u9700\u8981\u4f60\u5bf9Websocket\u6709\u5145\u5206\u4e86\u89e3\u624d\u53ef\u4ee5\u64cd\u4f5c\u3002")),(0,r.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"Websocket\u7684\u6240\u6709\u53d1\u9001\uff0c\u90fd\u662f\u5f62\u5982",(0,r.kt)("strong",{parentName:"p"},"SendWithWS"),"\u7684\u6269\u5c55\u65b9\u6cd5\u3002\u4e0d\u53ef\u76f4\u63a5Send\u3002")),(0,r.kt)("p",null,"\u4e0b\u9762\u6f14\u793a\u5982\u4f55\u5728\u63d2\u4ef6\u76f4\u63a5\u54cd\u5e94"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{9}","{9}":!0},'public class MyWebSocketPlugin : WebSocketPluginBase\n{\n protected override void OnHandleWSDataFrame(HttpSocketClient client, WSDataFrameEventArgs e)\n {\n switch (e.DataFrame.Opcode)\n {\n case WSDataType.Text:\n client.Logger.Info(e.DataFrame.ToText());\n client.SendWithWS("\u6211\u5df2\u6536\u5230");\n break;\n default:\n break;\n }\n }\n}\n')),(0,r.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"\u5982\u679c\u662f\u4f7f\u7528\u7684WSCallback\u56de\u8c03\u63a5\u6536\uff0c\u5219\u9700\u8981\u5c06",(0,r.kt)("strong",{parentName:"p"},"ITcpClientBase"),"\u5bf9\u8c61\uff0c\u5f3a\u5236\u8f6c\u6362\u4e3a",(0,r.kt)("strong",{parentName:"p"},"HttpSocketClient"),"\u3002"),(0,r.kt)("pre",{parentName:"admonition"},(0,r.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{6}","{6}":!0},'static void WSCallback(ITcpClientBase client, WSDataFrameEventArgs e)\n{\n switch (e.DataFrame.Opcode)\n {\n case WSDataType.Text:\n ((HttpSocketClient)client).SendWithWS("\u6211\u5df2\u6536\u5230");\n break;\n default:\n break;\n }\n}\n'))),(0,r.kt)("h2",{id:"\u4e03\u670d\u52a1\u5668\u5e7f\u64ad\u53d1\u9001"},"\u4e03\u3001\u670d\u52a1\u5668\u5e7f\u64ad\u53d1\u9001"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'//\u5e7f\u64ad\u7ed9\u6240\u6709\u4eba\nforeach (var item in service.GetClients())\n{\n if (item.Protocol== Protocol.WebSocket)\n {\n item.SendWithWS("\u5e7f\u64ad");\n }\n}\n')),(0,r.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u5728\u53d1\u9001\u65f6\uff0c\u8fd8\u53ef\u4ee5\u81ea\u5df1\u8fc7\u6ee4ID\u3002")))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/4c79e569.2d547aed.js b/handbook/build/assets/js/4c79e569.2d547aed.js new file mode 100644 index 0000000000000000000000000000000000000000..b299b2a7d29ff86f0baf6ac0ade4e5e9b21f3601 --- /dev/null +++ b/handbook/build/assets/js/4c79e569.2d547aed.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[8707],{3905:(e,t,l)=>{l.d(t,{Zo:()=>k,kt:()=>s});var a=l(7294);function n(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}function r(e,t){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),l.push.apply(l,a)}return l}function o(e){for(var t=1;t=0||(n[l]=e[l]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(n[l]=e[l])}return n}var i=a.createContext({}),c=function(e){var t=a.useContext(i),l=t;return e&&(l="function"==typeof e?e(t):o(o({},t),e)),l},k=function(e){var t=c(e.components);return a.createElement(i.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var l=e.components,n=e.mdxType,r=e.originalType,i=e.parentName,k=p(e,["components","mdxType","originalType","parentName"]),m=c(l),s=n,d=m["".concat(i,".").concat(s)]||m[s]||u[s]||r;return l?a.createElement(d,o(o({ref:t},k),{},{components:l})):a.createElement(d,o({ref:t},k))}));function s(e,t){var l=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=l.length,o=new Array(r);o[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p.mdxType="string"==typeof e?e:n,o[1]=p;for(var c=2;c{l.d(t,{Z:()=>U});var a=l(7294),n=l(7462);const r=(e,t,l)=>e?"string"==typeof e?e:e[t]||l:l,o={display:"block"},p=e=>{let{size:t,color:l,style:p,...i}=e;const c=p?{...o,...p}:o;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:c},i),a.createElement("path",{d:"M856.4 292.8c-63.3-63.6-126.6-127.1-190.2-190.3-15.3-15.2-32.7-16.1-48.1-0.8-64.3 63.6-128.1 127.6-191.8 191.9-14 14.2-16.3 31.6-1.7 46 14.8 14.7 31.5 10.6 46.1-2.7 5.1-4.6 9.8-9.7 14.7-14.7 39.2-39.7 78.5-79.5 122.8-124.4 0 170 3 332.2-1.1 494-2.4 96.4-91.2 174.6-187.4 176.6-110.6 2.3-198.6-84.4-199-197.4-0.6-136.3-0.2-272.6-0.1-408.9 0-21.8-7.9-37.4-31.2-39.9-18.9-2-33.2 13.2-33.1 37.5 0 145.8-3.4 291.7 2.4 437.2 6 152.1 160.4 263.5 309.5 230.5C591.8 900 672.8 797.2 673.6 664.6c0.8-144 0.2-288.1 0.2-432.1v-33.3c11.2 10.2 17.6 15.4 23.3 21.3 38.5 38.4 76.7 77 115.3 115.2 14.8 14.6 32.2 19.2 47.8 2.9 13.8-14.8 10.3-31.7-3.8-45.8z",fill:r(l,0,"#333333")}))};p.defaultProps={size:18};const i=p,c={display:"block"},k=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...c,...o}:c;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M143.872 768a51.2 51.2 0 0 1-15.36-2.56 51.2 51.2 0 0 1-35.328-51.2V283.136a148.992 148.992 0 0 1 141.824-153.6h450.56a148.992 148.992 0 0 1 141.824 153.6V512a148.992 148.992 0 0 1-141.824 153.6H244.224l-60.928 80.896a51.2 51.2 0 0 1-39.424 21.504zM235.008 180.224a97.792 97.792 0 0 0-90.624 102.4v430.592L218.624 614.4h466.944a97.792 97.792 0 0 0 90.624-102.4V283.136a97.792 97.792 0 0 0-90.624-102.4z",fill:r(l,0,"#333333")}),a.createElement("path",{d:"M880.128 875.52a51.2 51.2 0 0 1-39.424-20.48l-60.928-80.896h-243.2a25.6 25.6 0 0 1 0-51.2h268.8l76.288 102.4v-295.936a25.6 25.6 0 0 1 25.6-25.6 25.6 25.6 0 0 1 25.6 25.6v293.888a51.2 51.2 0 0 1-51.2 51.2z",fill:r(l,1,"#333333")}))};k.defaultProps={size:18};const u=k,m={display:"block"},s=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...m,...o}:m;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M223.425605 449.2744l161.632237 0 0 253.65714c0 16.954137 13.745049 30.699186 30.699186 30.699186 16.95516 0 30.699186-13.745049 30.699186-30.699186l0-284.356326c0-16.95516-13.744026-30.699186-30.699186-30.699186L291.035446 387.876028l217.23665-248.51605L733.039255 387.580293 607.104031 387.580293c-16.954137 0-30.699186 13.745049-30.699186 30.699186l0 284.652062c0 16.954137 13.745049 30.699186 30.699186 30.699186s30.699186-13.745049 30.699186-30.699186L637.803217 448.978664l164.448376 0c12.140505 0 23.140023-7.154957 28.063149-18.251689 4.922103-11.097756 2.841721-24.053835-5.307889-33.05279L530.62315 72.570829c-5.881964-6.495948-14.273075-10.134825-23.024389-10.091846-8.763594 0.076748-17.076934 3.895727-22.844288 10.494005L200.312188 398.371056c-7.92653 9.067516-9.818623 21.931498-4.839215 32.896224S211.383338 449.2744 223.425605 449.2744z",fill:r(l,0,"#333333")}),a.createElement("path",{d:"M222.354204 829.113381l581.732178 0c16.954137 0 30.699186-13.745049 30.699186-30.699186s-13.745049-30.699186-30.699186-30.699186L222.354204 767.715009c-16.954137 0-30.699186 13.745049-30.699186 30.699186S205.400067 829.113381 222.354204 829.113381z",fill:r(l,1,"#333333")}),a.createElement("path",{d:"M804.086381 896.729361 222.354204 896.729361c-16.954137 0-30.699186 13.745049-30.699186 30.699186s13.745049 30.699186 30.699186 30.699186l581.732178 0c16.954137 0 30.699186-13.745049 30.699186-30.699186S821.041542 896.729361 804.086381 896.729361z",fill:r(l,2,"#333333")}))};s.defaultProps={size:18};const d=s,g={display:"block"},h=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...g,...o}:g;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M380.15463648 874.54223633c0 18.12744166-14.83154297 32.95898463-32.95898463 32.95898463s-32.95898463-14.83154297-32.95898462-32.95898463V228.9152832L172.71078883 370.86962865a33.04467773 33.04467773 0 0 1-46.60400416 0 33.04467773 33.04467773 0 0 1 0-46.6040034l197.55615234-198.14941406A32.76782227 32.76782227 0 0 1 347.0967749 116.52514674c0.03295924 0 0.06591772-0.03295924 0.09887695-0.03295924 1.54907201 0 2.90039088 0.69213867 4.41650366 0.88989258 2.66967773 0.39550781 5.40527318 0.59326172 7.94311548 1.61499049 12.03002904 4.94384766 20.59936549 16.71020508 20.59936549 30.45410156v725.0910642z m320.15698192 23.34155248a32.85351537 32.85351537 0 0 1-23.43383789 9.59106445c-0.03295924 0-0.06591772 0.03295924-0.09887696 0.03295924-1.54907201 0-2.90039088-0.69213867-4.41650365-0.92285182-2.70263697-0.36254857-5.40527318-0.56030248-7.94311549-1.61498972-12.03002904-4.91088842-20.59936549-16.67724584-20.59936473-30.42114309V149.45776367c0-18.12744166 14.83154297-32.95898463 32.95898387-32.95898463s32.95898463 14.83154297 32.95898463 32.95898463v645.60058619l141.52587916-141.92138697c12.81445313-12.82104467 33.81591797-12.82104467 46.63037109 0 12.78808619 12.81445313 12.78808619 33.77636719 0 46.60400416L700.3116184 897.88378881z",fill:r(l,0,"#333333")}))};h.defaultProps={size:18};const N=h,y={display:"block"},T=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...y,...o}:y;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1172 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M870.0416 250.4704a38.4 38.4 0 0 0-8.96 53.5552c13.056 18.2784 24.4224 37.8368 33.7408 58.112a38.4512 38.4512 0 0 0 50.944 18.8928 38.4512 38.4512 0 0 0 18.8416-50.944 436.0192 436.0192 0 0 0-40.96-70.6048 38.3488 38.3488 0 0 0-53.6064-9.0112zM181.4528 566.016a35.9936 35.9936 0 0 0 25.5488-10.5984L351.7952 410.624a36.096 36.096 0 1 0-51.0976-51.0976L217.6 442.5728C250.0096 278.1184 395.264 153.6 569.1392 153.6c50.7904 0 99.8912 10.3936 145.92 30.9248a38.4 38.4 0 1 0 31.232-70.0928 431.36 431.36 0 0 0-177.152-37.632c-214.6816 0-393.1136 156.416-428.4416 361.216L62.1568 359.4752a36.1984 36.1984 0 0 0-51.0976 51.0976l144.8448 144.7936a36.0448 36.0448 0 0 0 25.5488 10.6496zM978.5344 463.104a36.1984 36.1984 0 0 0-51.0976 0l-144.8448 144.7936a36.096 36.096 0 1 0 51.0976 51.0976l88.6272-88.576C894.3104 740.2496 746.8032 870.4 569.1392 870.4a357.7856 357.7856 0 0 1-325.2736-207.7184 38.4 38.4 0 1 0-69.7344 32.3072 434.3808 434.3808 0 0 0 394.9568 252.2112c215.1936 0 393.984-157.184 428.6464-362.7008l74.496 74.496a35.9936 35.9936 0 0 0 51.0976 0 36.096 36.096 0 0 0 0-51.0976l-144.7936-144.7936z",fill:r(l,0,"#333333")}))};T.defaultProps={size:18};const v=T,f={display:"block"},b=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...f,...o}:f;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M302 332a30 30 0 1 1 0-60h420a30 30 0 0 1 0 60H302zM302 542a30 30 0 0 1 0-60h420a30 30 0 0 1 0 60H302zM302 752a30 30 0 0 1 0-60h120a30 30 0 0 1 0 60H302z",fill:r(l,0,"#333333")}),a.createElement("path",{d:"M789.47 784.1a30 30 0 0 1 39.36 45.3l-144.24 125.25a30 30 0 0 1-19.68 7.35H214.85C163.4 962 122 919.46 122 867.38V156.62C122 104.54 163.4 62 214.85 62h594.3C860.6 62 902 104.54 902 156.62v529.05a30 30 0 1 1-60 0V156.62C842 137.3 827.09 122 809.15 122H214.85C196.91 122 182 137.3 182 156.62v710.76C182 886.7 196.91 902 214.85 902h438.84l135.78-117.9z",fill:r(l,1,"#333333")}),a.createElement("path",{d:"M692 931.19a30 30 0 1 1-60 0v-174.6C632 704.57 673.4 662 724.85 662h147.78a30 30 0 0 1 0 60h-147.78c-17.94 0-32.85 15.3-32.85 34.62v174.6z",fill:r(l,2,"#333333")}))};b.defaultProps={size:18};const x=b,C={display:"block"},w=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...C,...o}:C;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M512 883.2A371.2 371.2 0 1 0 140.8 512 371.2 371.2 0 0 0 512 883.2z m0 64a435.2 435.2 0 1 1 435.2-435.2 435.2 435.2 0 0 1-435.2 435.2z",fill:r(l,0,"#333333")}),a.createElement("path",{d:"M557.056 512l122.368 122.368a31.744 31.744 0 1 1-45.056 45.056L512 557.056l-122.368 122.368a31.744 31.744 0 1 1-45.056-45.056L466.944 512 344.576 389.632a31.744 31.744 0 1 1 45.056-45.056L512 466.944l122.368-122.368a31.744 31.744 0 1 1 45.056 45.056z",fill:r(l,1,"#333333")}))};w.defaultProps={size:18};const R=w,Z={display:"block"},E=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...Z,...o}:Z;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5 0.2 13 0.7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2c41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7 0.4-6.4 0.7-12.8 0.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3-20.1 11.8-42 20-64.9 24.3V484c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v396.5c-22.9-4.3-44.8-12.5-64.9-24.3-30.3-17.7-55.6-43-73.3-73.3C317.7 752 308 716.8 308 680V412h408v268z",fill:r(l,0,"#333333")}),a.createElement("path",{d:"M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z",fill:r(l,1,"#333333")}))};E.defaultProps={size:18};const z=E,M={display:"block"},P=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...M,...o}:M;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M512 71.68c-242.688 0-440.32 197.632-440.32 440.32s197.632 440.32 440.32 440.32 440.32-197.632 440.32-440.32-197.632-440.32-440.32-440.32z m0 819.2c-208.896 0-378.88-169.984-378.88-378.88s169.984-378.88 378.88-378.88 378.88 169.984 378.88 378.88-169.984 378.88-378.88 378.88z",fill:r(l,0,"#333333")}),a.createElement("path",{d:"M542.72 261.12H481.28v220.16H261.12v61.44h220.16v220.16h61.44v-220.16h220.16V481.28h-220.16z",fill:r(l,1,"#333333")}))};P.defaultProps={size:18};const S=P,O={display:"block"},I=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...O,...o}:O;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M384 896h-64v-70.4c0-15.2-10.4-28-24.8-31.2C159.2 768 64 644.8 64 496v-32h64v32c0 118.4 73.6 215.2 179.2 236 44.8 8.8 76.8 48 76.8 94.4v69.6zM704 896h-64v-70.4c0-45.6 32-85.6 76.8-94.4C822.4 711.2 896 614.4 896 496v-32h64v32c0 148.8-95.2 272-231.2 298.4-14.4 3.2-24.8 16-24.8 31.2v70.4zM512.8 640l-41.6-37.6c-147.2-133.6-244-208-244-316.8 0-88 68.8-156.8 156.8-156.8 49.6 0 97.6 23.2 128.8 60C544 152 592 128.8 641.6 128.8c88 0 156.8 68.8 156.8 156.8 0 108-96.8 183.2-244 316.8L512.8 640z",fill:r(l,0,"#333333")}))};I.defaultProps={size:18};const L=I,q={display:"block"},B=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...q,...o}:q;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M942.4615936 284.62787926c-14.30911886-14.12709945-37.31996786-14.05468217-51.48229632 0.21920654L517.97142983 661.27810333 139.75544149 286.45003606c-14.30911886-14.16232846-37.31996786-14.05468217-51.51948344 0.21920654-14.16232846 14.30911886-14.05468217 37.35519687 0.21920654 51.51948345l401.99014627 398.34974663c0.61847666 0.61847666 1.41897273 0.76526706 2.03940637 1.34655658 0.14483342 0.14483342 0.18201941 0.32685283 0.32685283 0.47364324 7.09877874 7.02636259 16.38375538 10.55911595 25.63154489 10.55911595 9.35739278 0 18.75001458-3.60516949 25.85075143-10.77636551l398.34974663-401.99014628C956.84312974 321.8382427 956.73548345 298.7921647 942.4615936 284.62787926z",fill:r(l,0,"#333333")}))};B.defaultProps={size:18};const A=B,j={display:"block"},D=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...j,...o}:j;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M81.5384064 739.37212074c14.30911886 14.12709945 37.31996786 14.05468217 51.48229632-0.21920654L506.02857017 362.72189667 884.24455851 737.54996394c14.30911886 14.16232846 37.31996786 14.05468217 51.51948344-0.21920654 14.16232846-14.30911886 14.05468217-37.35519687-0.21920654-51.51948345l-401.99014627-398.34974663c-0.61847666-0.61847666-1.41897273-0.76526706-2.03940637-1.34655658-0.14483342-0.14483342-0.18201941-0.32685283-0.32685282-0.47364324-7.09877874-7.02636259-16.38375538-10.55911595-25.6315449-10.55911595-9.35739278 0-18.75001458 3.60516949-25.85075143 10.77636551l-398.34974663 401.99014628C67.15687026 702.1617573 67.26451655 725.2078353 81.5384064 739.37212074z",fill:r(l,0,"#333333")}))};D.defaultProps={size:18};const H=D,F=e=>{let{name:t,...l}=e;switch(t){case"youhua":return a.createElement(i,l);case"dayi":return a.createElement(u,l);case"shengji":return a.createElement(d,l);case"tiaozheng":return a.createElement(N,l);case"gengxin":return a.createElement(v,l);case"wendang":return a.createElement(x,l);case"shanchu":return a.createElement(R,l);case"bug":return a.createElement(z,l);case"xinzeng":return a.createElement(S,l);case"fuwu":return a.createElement(L,l);case"down":return a.createElement(A,l);case"up":return a.createElement(H,l)}return null},V="label_p8vM",W="icon_knQK";function U(e){const{children:t}=e,l={"\u65b0\u589e":{icon:"xinzeng",bgColor:"#39b54a"},"\u4fee\u590d":{icon:"bug",bgColor:"#9c26b0"},"\u6587\u6863":{icon:"wendang",bgColor:"rgb(79, 147, 255)"},"\u66f4\u65b0":{icon:"gengxin",bgColor:"#0081ff"},"\u8c03\u6574":{icon:"tiaozheng",bgColor:"#333"},"\u5347\u7ea7":{icon:"shengji",bgColor:"#e03997"},"\u79fb\u9664":{icon:"shanchu",bgColor:"#666"},"\u7b54\u7591":{icon:"dayi",bgColor:"#bbb"},"\u4f18\u5316":{icon:"youhua",bgColor:"#38e550"},"\u63a8\u8350":{bgColor:"#38e550"},"\u4f01\u4e1a\u7248":{bgColor:"#23AAF2"}};return a.createElement("label",{className:V,title:t,style:{backgroundColor:l[t].bgColor}},a.createElement(F,{name:l[t].icon,color:"white",size:14,className:W})," ",t)}},7271:(e,t,l)=>{l.r(t),l.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>k});var a=l(7462),n=(l(7294),l(3905)),r=(l(4996),l(510));const o={id:"upgrade",title:"\u5386\u53f2\u66f4\u65b0"},p=void 0,i={unversionedId:"upgrade",id:"upgrade",title:"\u5386\u53f2\u66f4\u65b0",description:"\u5347\u7ea7\u524d\u91cd\u70b9\u5173\u6ce8\u53ef\u80fd\u9020\u6210\u3010\u7834\u574f\u6027\u3011\u7684\u6807\u7b7e\u7c7b\u578b\uff1a\u4fee\u590d\u3001\u8c03\u6574\u3001\u79fb\u9664\u3001\u5347\u7ea7",source:"@site/docs/upgrade.mdx",sourceDirName:".",slug:"/upgrade",permalink:"/touchsocket/docs/upgrade",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/upgrade.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1677657351,formattedLastUpdatedAt:"Mar 1, 2023",frontMatter:{id:"upgrade",title:"\u5386\u53f2\u66f4\u65b0"},sidebar:"docs",previous:{title:"\u8bf4\u660e",permalink:"/touchsocket/docs/"},next:{title:"\u652f\u6301\u4f5c\u8005",permalink:"/touchsocket/docs/donate"}},c={},k=[{value:"v1.3",id:"v13",level:2},{value:"v1.2",id:"v12",level:2},{value:"v1.1",id:"v11",level:2},{value:"v1.0.0",id:"v100",level:2},{value:"\u7248\u672c\u53f7: 0.7.0",id:"\u7248\u672c\u53f7-070",level:2},{value:"\u7248\u672c\u53f7: 0.6.0",id:"\u7248\u672c\u53f7-060",level:2},{value:"\u7248\u672c\u53f7: 0.5.0",id:"\u7248\u672c\u53f7-050",level:2},{value:"\u7248\u672c\u53f7: 0.4.5",id:"\u7248\u672c\u53f7-045",level:2},{value:"\u7248\u672c\u53f7: 0.3.5",id:"\u7248\u672c\u53f7-035",level:2},{value:"\u7248\u672c\u53f7: 0.2.4",id:"\u7248\u672c\u53f7-024",level:2},{value:"\u7248\u672c\u53f7: 0.1.0",id:"\u7248\u672c\u53f7-010",level:2},{value:"1.\u6240\u6709\u7c7b\u7684\u547d\u540d\u7a7a\u95f4\u4fee\u6539\uff0c\u6b64\u5904\u5982\u679c\u7c7b\u578b\u540d\u672a\u4fee\u6539\u7684\u8bdd\uff0c\u53ef\u7531vs\u667a\u80fd\u63d0\u793a\u89e3\u51b3\u3002",id:"1\u6240\u6709\u7c7b\u7684\u547d\u540d\u7a7a\u95f4\u4fee\u6539\u6b64\u5904\u5982\u679c\u7c7b\u578b\u540d\u672a\u4fee\u6539\u7684\u8bdd\u53ef\u7531vs\u667a\u80fd\u63d0\u793a\u89e3\u51b3",level:3},{value:"2.\u7c7b\u578b\u540d\u79f0\u4fee\u6539",id:"2\u7c7b\u578b\u540d\u79f0\u4fee\u6539",level:3},{value:"3.\u4f7f\u7528\u903b\u8f91\u4fee\u6539",id:"3\u4f7f\u7528\u903b\u8f91\u4fee\u6539",level:3}],u={toc:k};function m(e){let{components:t,...o}=e;return(0,n.kt)("wrapper",(0,a.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,n.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"TouchSocket")," \u6846\u67b6\u5347\u7ea7/\u53d1\u7248\u89c4\u5219"),(0,n.kt)("p",{parentName:"admonition"},(0,n.kt)("strong",{parentName:"p"},"\u5347\u7ea7\u524d\u91cd\u70b9\u5173\u6ce8\u53ef\u80fd\u9020\u6210\u3010\u7834\u574f\u6027\u3011\u7684\u6807\u7b7e\u7c7b\u578b"),"\uff1a",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d"),"\u3001",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574"),"\u3001",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u79fb\u9664"),"\u3001",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u5347\u7ea7")),(0,n.kt)("p",{parentName:"admonition"},"\u7248\u672c\u53f7\u89c4\u5219\uff1a",(0,n.kt)("inlineCode",{parentName:"p"},"\u4e3b\u7248\u672c\u53f7.\u6b21\u7248\u672c\u53f7.\u4fee\u8ba2\u7248\u672c\u53f7")),(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},"\u53ea\u8981\u3010\u786e\u8ba4\u3011\u4e3a\u6846\u67b6 ",(0,n.kt)("inlineCode",{parentName:"li"},"bug"),"\uff0c\u5219\u5f53\u5929\u4fee\u590d\uff0c\u5f53\u5929\u53d1\u7248\uff0c\u4fee\u8ba2\u7248\u672c\u53f7 ",(0,n.kt)("inlineCode",{parentName:"li"},"\u52a0 1"),"\u3002"),(0,n.kt)("li",{parentName:"ul"},"\u5982\u679c ",(0,n.kt)("inlineCode",{parentName:"li"},".csproj")," \u6587\u4ef6\u6709\u53d8\u66f4\uff0c\u5219\u5f53\u5929\u53d1\u7248\uff0c\u4fee\u8ba2\u7248\u672c\u53f7 ",(0,n.kt)("inlineCode",{parentName:"li"},"\u52a0 1"),"\u3002"),(0,n.kt)("li",{parentName:"ul"},"\u5176\u4f59\u60c5\u51b5\uff0c\u6bcf\u5e74\u53d1\u5e03\u4e00\u4e2a ",(0,n.kt)("inlineCode",{parentName:"li"},"\u4e3b\u7248\u672c"),"\u3002"))),(0,n.kt)("h2",{id:"v13"},"v1.3"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2023.3.1"),(0,n.kt)("p",null,"\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\u3002"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," \u6574\u4f53\u589e\u52a0\u5f02\u6b65\u65b9\u6cd5\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," Rpc\u6e90\u4ee3\u7801\u751f\u6210\u7b56\u7565\uff0c\u652f\u6301\u63a5\u53e3\u5b9e\u4f8b\u5e76\u5b58\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," TcpClient\u5728UseReconnect\u63d2\u4ef6\u65f6\uff0cDisconnect\u4e8b\u4ef6\u4e0d\u89e6\u53d1bug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," ws\u534f\u8bae\u7684TouchRpc\u670d\u52a1\u7aef\uff0c\u589e\u52a0HttpContext\u4e0a\u4e0b\u6587\u83b7\u53d6\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"v12"},"v1.2"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2023.2.15"),(0,n.kt)("p",null,"\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\u3002"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," TouchRpc\u652f\u6301\u547d\u540d\u5143\u7ec4\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," Rpc\u6e90\u4ee3\u7801\u751f\u6210\u7b56\u7565\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," TouchRpc\u5728Websocket\u534f\u8bae\u4e0b\uff0c\u542f\u52a8\uff0c\u8fde\u63a5\u5f02\u5e38bug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," TouchRpc\u5728\u8c03\u7528WaitSend\u4e0b\u5931\u8d25\u7684bug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," TouchRpc\u5728Handshaked\u65f6\uff0c\u8c03\u7528Rpc\u8d85\u65f6bug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," \u5e8f\u5217\u5316\u3001\u53cd\u5c04\u5728unity\u4e2d\u4f7f\u7528il2cpp\u7f16\u8bd1\u7684bug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," \u53cd\u5e8f\u5217\u5316\u5728\u521d\u6b21\u52a0\u8f7d\u65f6\u4f1a\u5931\u8d25\u7684bug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," BytePool\u6ca1\u6709\u516c\u5171\u6784\u9020\u51fd\u6570\u7684bug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," ws\u534f\u8bae\u7684TouchRpc\u670d\u52a1\u7aef\uff0c\u589e\u52a0HttpContext\u4e0a\u4e0b\u6587\u83b7\u53d6\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," ByteBlock\u5bf9\u4e8eint\uff0clong\u7b49\u6570\u636e\uff0c\u5199\u5165\u548c\u8bfb\u53d6\u7684\u65f6\u5019\u652f\u6301\u5927\u5c0f\u7aef\u6307\u5b9a\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," IServicePlugin\u63d2\u4ef6\uff0c\u7528\u4e8e\u663e\u793a\u901a\u77e5\u670d\u52a1\u5668\u7684\u542f\u52a8\u72b6\u6001\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," Rpc\u652f\u6301\u63a5\u53e3\u7279\u6027\u6807\u8bb0\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u5c06BytePool\u7531\u9759\u6001\u8c03\u6574\u4e3a\u5b9e\u4f8b\uff0c\u4e14\u7531\u5176Default\u5b9e\u4f8b\u4f5c\u4e3a\u9ed8\u8ba4\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"v11"},"v1.1"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2023.1.13"),(0,n.kt)("p",null,"\u66f4\u65b0\u63cf\u8ff0\uff1a\u5c0f\u7248\u672c\u5347\u7ea7\uff0c\u53ef\u80fd\u4f1a\u6709\u4e0d\u517c\u5bb9\u3002\u8bf7\u6309\u4e0b\u5217\u63d0\u793a\u4fee\u6539\u3002 "),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," TouchRpc\u7cfb\u6587\u4ef6\u4f20\u8f93\u65f6\uff0c\u6587\u4ef6\u5939\u4e0d\u5b58\u5728\u7684\u63d0\u793a\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," WaitingClient\uff0c\u5f53\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\u65f6\uff0c\u53ef\u9009\u662f\u5426\u629b\u51fa\u5f02\u5e38\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," Fast\u5e8f\u5217\u5316\u65f6\u3002\u53ef\u9009\u5e8f\u5217\u5316\u53ea\u8bfb\u5c5e\u6027\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," \u591a\u4e2a\u4e0d\u7a33\u5b9aBug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," Tcp\u5ba2\u6237\u7aef\u65b0\u589eDisconnecting\u4e8b\u4ef6\u3002\u5728\u4e3b\u52a8Close\u65f6\u751f\u6548\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u591a\u4e2a\u4e8b\u4ef6\u7c7b\u540d\u79f0\u4fee\u6539\uff0c\u8bf7\u6309\u7167\u63d0\u793a\u4fee\u6539\u5373\u53ef\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u79fb\u9664")," \u591a\u4e2a\u65e0\u7528\u65b9\u6cd5\u53c2\u6570\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"v100"},"v1.0.0"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2023.1.1"),(0,n.kt)("p",null,"\u66f4\u65b0\u63cf\u8ff0\uff1a\u5927\u7248\u672c\u5347\u7ea7\uff0c\u8bf7\u8be6\u7ec6\u9605\u8bfb\u4e0b\u5217\u66f4\u65b0\u65e5\u5fd7\u3002"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u5347\u7ea7")," \u5c06\u6700\u9ad8\u7248\u672c\u5347\u7ea7\u4e3aNET7\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," Tcp\u7cfb\u5f02\u6b65\u53d1\u9001\u6548\u7387\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," TouchRpc\u7cfbChannel\u7684\u7a33\u5065\u6027\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," \u591a\u4e2a\u4e0d\u7a33\u5b9aBug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," ValueByteBlock\uff0c\u5728\u7b80\u5355\u4ee3\u7801\u5757\u91cc\u9762\u80fd\u6709\u6548\u51cf\u5c11\u521b\u5efa\u7684\u7c7b\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," MemoryCache\u7c7b\uff0c\u5176\u529f\u80fd\u7c7b\u4f3c\u5fae\u8f6f\u5b98\u65b9\u3002\u4f46\u662f\u652f\u6301\u5168\u90e8\u6cdb\u578b\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," ",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/ag9tyar9mmhsme0m"},"IPackage\u7cfb"),"\u3002\u8be5\u7cfb\u5217\u80fd\u4ee5\u8d85\u9ad8\u6548\u7387\u7684\u8fdb\u884c\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," SingleTimer\u7c7b\uff0c\u4e0d\u53ef\u91cd\u5165\u7684Timer\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," Jsonrpc\u652f\u6301\u81ea\u5b9a\u4e49\u9002\u914d\u5668\u89e3\u6790\uff08EE\uff09"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," \u4e25\u91cdTouchRpc\u7cfbOnRouting\u901a\u77e5\uff0c\u6240\u6709\u7684\u5ba2\u6237\u7aef\u4e4b\u95f4\u7684\u901a\u4fe1\uff0c\u90fd\u5fc5\u987b\u7ecf\u8fc7OnRouting\u7684\u7b5b\u67e5\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," TouchRpc\u7cfb\u5c0f\u6587\u4ef6\u4f20\u8f93\uff0c\u5728\u6587\u4ef6\u5c0f\u4e8e1Mb\u65f6\uff0c\u5176\u4f20\u8f93\u6548\u7387\u662f\u5e38\u89c4\u4f20\u8f93\u768410\u500d\u4ee5\u4e0a\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," TouchRpc\u7cfb\u8d85\u5927\u6587\u4ef6\u591a\u94fe\u8def\u4f20\u8f93\uff0c\u652f\u6301\u591a\u4e2a\u5ba2\u6237\u7aef\u534f\u540c\u4f20\u8f93\u540c\u4e00\u4e2a\u6587\u4ef6\uff0c\u8fd9\u5728\u4e92\u8054\u7f51\u73af\u5883\u4e2d\uff0c\u6548\u7387\u6bd4\u5e38\u89c4\u4f20\u8f93\u63d0\u9ad8\u7c7b3-5\u500d\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," TouchRpc\u7cfbRedis\u7ec4\u4ef6\uff0c\u80fd\u5b9e\u73b0\u53cc\u7aef\u5171\u540c\u5b58\u50a8\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u4e25\u91cd\u7cbe\u7b80\u6240\u6709\u547d\u540d\u7a7a\u95f4\uff0c\u5220\u9664\u6240\u6709\u4e09\u7ea7\u547d\u540d\u7a7a\u95f4\u3002\u4f8b\u5982\uff1aTouchSocket.Core.ByteManager\u7cbe\u7b80\u4e3aTouchSocket.Core\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u4e25\u91cd\u5220\u9664Newtonsoft.Json\u7684\u6e90\u4ee3\u7801\u5d4c\u5165\u3002\u5168\u5c40\u7684Json\u4f1a\u6839\u636e\u73af\u5883\u52a8\u6001\u8c03\u6574\uff0c\u8be6\u60c5\u89c1",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/emqy43#PfVh1"},"Json\u5de5\u5177")),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u4e25\u91cd\u6846\u67b6\u9ed8\u8ba4\u65e5\u5fd7\u7531ConsoleLogger\uff0c\u66ff\u6362\u4e3aEmptyLogger\uff08\u4e0d\u8f93\u51fa\u4efb\u4f55\u4e1c\u897f\uff09\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u4e25\u91cdTcp\u5168\u7cfb\uff0c\u5728\u8fde\u63a5\u65f6\uff0cID\u7684\u521d\u59cb\u503c\u4f7f\u7528long\u7c7b\u578b\u4ece0\u9012\u589e\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u4e25\u91cdTcp\u670d\u52a1\u5668\uff0c\u5c06\u5b9a\u65f6\u6e05\u7406\u65e0\u6570\u636e\u4ea4\u4e92\u7684\u9009\u9879\u66ff\u6362\u4e3aUseCheckClear\u63d2\u4ef6\u3002\u5e76\u4e14\u9ed8\u8ba4\u6ca1\u6709\u542f\u7528\uff0c\u9700\u8981\u624b\u52a8\u52a0\u5165\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," Tcp\u7cfb\u9002\u914d\u5668\uff0c\u53d6\u6d88\u90e8\u5206\u53c2\u6570\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," DataLock\u6539\u540d\u4e3aDataSecurity\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," EasyAction\u6539\u540dEasyTask\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," IMessage\u6539\u540dIMessageObject\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," TokenInstance\u6539\u540dMessageInstance\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," TouchRpc\u7cfb\uff0c\u7cbe\u7b80\u5e38\u89c4\u6587\u4ef6\u4f20\u8f93\u64cd\u4f5c\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u4e25\u91cdTouchRpc\u7cfb\uff0c\u6240\u6709\u63d2\u4ef6\u901a\u77e5\u53c2\u6570\uff0c\u9ed8\u8ba4\u90fd\u8bbe\u4e3a\u4e0d\u5141\u8bb8\u64cd\u4f5c\uff0c\u9700\u8981\u624b\u52a8\u8bbe\u7f6ee.IsPermitOperation=true\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u79fb\u9664")," Newtonsoft.Json\u7684\u6e90\u4ee3\u7801\u5d4c\u5165\u3002\u5168\u5c40\u7684Json\u4f1a\u6839\u636e\u73af\u5883\u52a8\u6001\u8c03\u6574\uff0c\u8be6\u60c5\u89c1",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/emqy43#PfVh1"},"Json\u5de5\u5177"),"\u3002")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"}," \u66f4\u65b0\u793a\u4f8b\u6307\u5357 "))),(0,n.kt)("p",null,"\uff081\uff09\u9002\u914d\u5668\u53c2\u6570\u62a5\u9519\uff1a\u76f4\u63a5\u5220\u9664isAsync\u53c2\u6570\uff0c\u4ee5\u53caisAsync\u4e3a",(0,n.kt)("strong",{parentName:"p"},"True"),"\u7684\u6240\u6709\u903b\u8f91\u3002\n",(0,n.kt)("img",{alt:"image.png",src:l(3007).Z,width:"1500",height:"91"}),"\n\uff082\uff09\u4f9d\u8d56\u5c5e\u6027\u7684\u58f0\u660e\u62a5\u9519\uff1a\u589e\u52a0\u6cdb\u578b\u7ea6\u675f\u5373\u53ef\uff0c\u8be6\u60c5\u67e5\u770b",(0,n.kt)("a",{parentName:"p",href:"https://www.yuque.com/rrqm/touchsocket/ubk57o#jyzSl"},"\u4f9d\u8d56\u5c5e\u6027"),"\n",(0,n.kt)("img",{alt:"image.png",src:l(6866).Z,width:"1500",height:"200"}),"\n\uff083\uff09\u670d\u52a1\u7aef\u5b9a\u65f6\u6e05\u7406\u8b66\u544a\uff1a\u5728\u914d\u7f6e\u63d2\u4ef6\u4e2d\u4f7f\u7528UseCheckClear\uff0c\u5e76\u4e14\u8fdb\u884c\u76f8\u5173\u914d\u7f6e\u3002\n",(0,n.kt)("img",{alt:"image.png",src:l(6257).Z,width:"1500",height:"281"}),"\n",(0,n.kt)("img",{alt:"image.png",src:l(4475).Z,width:"1500",height:"388"})),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-070"},"\u7248\u672c\u53f7: 0.7.0"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.9.21\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\uff0c\u589e\u5f3a\u578b\u66f4\u65b0\u3002",(0,n.kt)("strong",{parentName:"p"},"RPC\u5185\u5bb9\u9700\u8981\u5ba2\u6237\u7aef\u4e0e\u670d\u52a1\u5668\u540c\u6b65\u66f4\u65b0"),"\u3002\n\u66f4\u65b0\u8be6\u60c5\uff1a"),(0,n.kt)("p",null,"\u4f18\u5316"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Fast\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\u3002"),(0,n.kt)("li",{parentName:"ol"},"TouchRpc\u5168\u7cfb\uff0c\u5728\u6587\u4ef6\u4f20\u8f93\u7b49\u5927\u578bIO\u65f6\uff0c\u7531\u4e8e\u5fc3\u8df3\u5931\u8d25\u800c\u65ad\u5f00\u8fde\u63a5\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u4f18\u5316AspNetCore\u7684IContainer\u3002"),(0,n.kt)("li",{parentName:"ol"},"TcpCommandLinePlugin\u4e0eWSCommandLinePlugin\u652f\u6301\u83b7\u53d6\u5ba2\u6237\u7aef\u53c2\u6570\u3002")),(0,n.kt)("p",null,"\u65b0\u589e"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u63d2\u4ef6\u5b9e\u4f8b\u4f1a\u4ee5\u5355\u4f8b\u6ce8\u5165\u5bb9\u5668\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u6240\u6709\u9002\u914d\u5668\u652f\u6301",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/83526e6320dfc85fef317d850aa51e92#Z0S0g"},"\u7f13\u5b58\u8d85\u65f6"),"\u8bbe\u5b9a\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u4fee\u6539\u6240\u6709\u4e8b\u4ef6\u4e3a\u59d4\u6258\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u5f00\u653e",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/55e5bbf58745fa639dba511c7bcd54d1#WqOmh"},"AspnetCore"),"\u521b\u5efaTcp\uff0cHttp\u7b49\u670d\u52a1\u5668\u7684\u914d\u7f6e\u3002"),(0,n.kt)("li",{parentName:"ol"},"IClient\u589e\u52a0\u53d1\u9001\u3001\u63a5\u6536\u7684\u6700\u540e\u65f6\u95f4\u8bb0\u5f55\u3002"),(0,n.kt)("li",{parentName:"ol"},"Http\u652f\u6301\u591a\u6587\u4ef6\u4e0a\u4f20\uff08\u76ee\u524d\u4ec5\u652f\u6301\u5c0f\u6587\u4ef6\uff0c\u5177\u4f53\u5927\u5c0f\u4ee5\u5b9e\u9645\u8fd0\u884c\u5185\u5b58\u4e3a\u51c6\uff0c\u5b9e\u6d4b100Mb\u6ca1\u95ee\u9898\uff09\u3002"),(0,n.kt)("li",{parentName:"ol"},"Websocket\u63d2\u4ef6\u9ed8\u8ba4\u4f1a\u5904\u7406Close\u62a5\u6587\u3002\u4e14\u63d2\u4ef6\u652f\u6301Close\u3002"),(0,n.kt)("li",{parentName:"ol"},"Rpc\u652f\u6301\u6a21\u677f\u4ee3\u7801\u91cd\u5199\u3002"),(0,n.kt)("li",{parentName:"ol"},"TouchRpc\u652f\u6301\u5143\u7ec4\u3002"),(0,n.kt)("li",{parentName:"ol"},"JsonRpc\u652f\u6301Websocket\u534f\u8bae\u3002")),(0,n.kt)("p",null,"\u4fee\u6539 "),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"IScopedContainer\u4fee\u6539\u4e3aIContainerProvider")),(0,n.kt)("p",null,"\u4fee\u590d"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"BytePool\u56de\u6536\u5185\u5b58\u65f6\u4e0d\u5224\u65ad\u5927\u5c0f\u7684bug\u3002")),(0,n.kt)("p",null,"\u5220\u9664"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u65e0\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-060"},"\u7248\u672c\u53f7: 0.6.0"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.9.10\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\uff0c\u589e\u5f3a\u578b\u66f4\u65b0\u3002",(0,n.kt)("strong",{parentName:"p"},"\u4e13\u4e3aUnity 3D\u9002\u914d"),"\u3002\n\u66f4\u65b0\u8be6\u60c5\uff1a"),(0,n.kt)("p",null,"\u4f18\u5316"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Gzip\u7684\u538b\u7f29\u6548\u7387\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u53d1\u9001\u6548\u7387\u3002")),(0,n.kt)("p",null,"\u65b0\u589e"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"IDataCompressor\u6570\u636e\u4f20\u8f93\u538b\u7f29\u63a5\u53e3\u3002"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/ukq0mu"},"RemoteStream"),"\u652f\u6301\u6570\u636e\u8bfb\u5199\u538b\u7f29\u3002"),(0,n.kt)("li",{parentName:"ol"},"WaitResultPackageBase\u7c7b\uff0c\u4e13\u5c5e\u975e\u5e8f\u5217\u5316\u7684\u6570\u636e\u683c\u5f0f\u5316\u3002"),(0,n.kt)("li",{parentName:"ol"},"DelaySender",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/1f21a56ee75f896a5b5b38b37b071881#RL0kx"},"\u5ef6\u8fdf\u7f13\u5b58\u53d1\u9001"),"\u3002")),(0,n.kt)("p",null,"\u4fee\u6539"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u65e0")),(0,n.kt)("p",null,"\u4fee\u590d"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Rpc\u6ce8\u518c\u670d\u52a1\u4e3a\u5355\u4f8b\u65f6\uff0c\u5b9e\u9645\u4e0a\u662f\u77ac\u65f6\u670d\u52a1\u7684bug\u3002")),(0,n.kt)("p",null,"\u5220\u9664"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u72ec\u7acb\u7ebf\u7a0b\u53d1\u9001\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-050"},"\u7248\u672c\u53f7: 0.5.0"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.9.1\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\uff0c\u589e\u5f3a\u578b\u66f4\u65b0\u3002\n\u66f4\u65b0\u8be6\u60c5\uff1a"),(0,n.kt)("p",null,"\u4f18\u5316"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u5168\u5c40\u8d44\u6e90\u7684\u83b7\u53d6\u903b\u8f91\u3002")),(0,n.kt)("p",null,"\u65b0\u589e"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Container\u589e\u52a0\u5378\u8f7d\u6ce8\u518c\u529f\u80fd\u3002"),(0,n.kt)("li",{parentName:"ol"},"FilePool\u65b0\u589eFileStorageStream\u7684\u83b7\u53d6\u3002"),(0,n.kt)("li",{parentName:"ol"},"http\u5ba2\u6237\u7aef\uff08\u53cawebsocket\uff09\u652f\u6301\u4ee3\u7406\u548c\u9a8c\u8bc1\u4ee3\u7406\u3002"),(0,n.kt)("li",{parentName:"ol"},"TouchRpc\u5168\u7cfb\u65b0\u589e",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/pearz0"},"\u8fdc\u7a0b\u6587\u4ef6\u64cd\u4f5c")),(0,n.kt)("li",{parentName:"ol"},"TouchRpc\uff08\u9664udp\uff09\u65b0\u589e",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/ukq0mu"},"\u8fdc\u7a0b\u6d41\u8bbf\u95ee"))),(0,n.kt)("p",null,"\u4fee\u6539"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u65e0")),(0,n.kt)("p",null,"\u4fee\u590d"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u4fee\u590dHttp\u5ba2\u6237\u7aef\u8bf7\u6c42\u91cd\u590dHeader\u65f6\u7684bug\u3002")),(0,n.kt)("p",null,"\u5220\u9664"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"TouchRpc\u5168\u7cfb\u7684\u4e8b\u4ef6\u64cd\u4f5c\uff0c\u63a8\u8350\u76f4\u63a5\u63d2\u4ef6\u7684\u65b9\u5f0f\uff0c\u6216\u8005\u4f7f\u7528TouchRpcActionPlugin\u7136\u540e\u6dfb\u52a0\u59d4\u6258\u3002")),(0,n.kt)("p",null,"\u66f4\u65b0\u793a\u4f8b\nTouchRpc\u7684\u76f8\u5173\u4e8b\u4ef6\u5747\u5df2\u4f7f\u7528\u63d2\u4ef6\u4ee3\u66ff\u3002\u6240\u4ee5\u8bf7\u4f7f\u7528\u63d2\u4ef6\u5b9e\u73b0\u64cd\u4f5c\u3002\u5982\u679c\u9700\u8981\u4e8b\u4ef6\u7b49\u529f\u80fd\u7684\u8bdd\uff0c\u53ef\u4ee5\u7528TouchRpcActionPlugin\u7684\u63d2\u4ef6\u5b9e\u73b0\u3002\u4f8b\u5982\uff1a"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},'.UsePlugin()\n.ConfigurePlugins(a=> \n{\n a.Add>()//\u6b64\u5904\u7684\u903b\u8f91\u53ef\u7528\u63d2\u4ef6\u66ff\u4ee3\u5b8c\u6210\u3002\n .SetFileTransfering((client, e) =>\n {\n //\u6709\u53ef\u80fd\u662f\u4e0a\u4f20\uff0c\u4e5f\u6709\u53ef\u80fd\u662f\u4e0b\u8f7d\n client.Logger.Info($"\u670d\u52a1\u5668\u8bf7\u6c42\u4f20\u8f93\u6587\u4ef6\uff0cID={client.ID}\uff0c\u8bf7\u6c42\u7c7b\u578b={e.TransferType}\uff0c\u6587\u4ef6\u540d={e.FileInfo.FileName}");\n })\n .SetFileTransfered((client, e) =>\n {\n //\u4f20\u8f93\u7ed3\u675f\uff0c\u4f46\u662f\u4e0d\u4e00\u5b9a\u6210\u529f\uff0c\u9700\u8981\u4ecee.Result\u5224\u65ad\u72b6\u6001\u3002\n client.Logger.Info($"\u670d\u52a1\u5668\u4f20\u8f93\u6587\u4ef6\u7ed3\u675f\uff0cID={client.ID}\uff0c\u8bf7\u6c42\u7c7b\u578b={e.TransferType}\uff0c\u6587\u4ef6\u540d={e.FileInfo.FileName}\uff0c\u8bf7\u6c42\u72b6\u6001={e.Result}");\n });\n})\n')),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-045"},"\u7248\u672c\u53f7: 0.4.5"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.8.25\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\uff0c\u589e\u5f3a\u578b\u66f4\u65b0\u3002\n\u66f4\u65b0\u8be6\u60c5\uff1a"),(0,n.kt)("p",null,"\u4f18\u5316"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"FileLogger\u7684\u5199\u5165\u903b\u8f91\uff0c\u5927\u5927\u5730\u63d0\u5347\u4e86\u5199\u5165\u6548\u7387\u3002")),(0,n.kt)("p",null,"\u65b0\u589e"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/ofnliu"},"Pipeline\u9002\u914d\u5668")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/wug4bv"},"TLV\u9002\u914d\u5668")),(0,n.kt)("li",{parentName:"ol"},"WaitingClient\u652f\u6301\u6309\u6761\u4ef6\u7b49\u5f85\u8fd4\u56de\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u65e5\u5fd7\u7cfb\u7edf\u53ef\u4ee5\u7b5b\u9009\u65e5\u5fd7\u7684\u8f93\u51fa\u7c7b\u578b"),(0,n.kt)("li",{parentName:"ol"},"Rpc\u7cfb\u7edf\uff0c\u53ef\u4ee5\u4f7f\u7528\u5355\u4f8b\u3001\u77ac\u65f6\u751f\u547d\u5468\u671f\u7684\u670d\u52a1\u3002"),(0,n.kt)("li",{parentName:"ol"},"Rpc\u7cfb\u7edf\uff0c\u53ef\u5b9a\u4e49\u6301\u4e45\u5316\u6a21\u578b\u3002"),(0,n.kt)("li",{parentName:"ol"},"Rpc\u5728\u4f7f\u7528\u77ac\u65f6\u751f\u547d\u5468\u671f\u7684\u670d\u52a1\u65f6\uff0c\u53ef\u4ee5\u76f4\u63a5\u83b7\u53d6\u8c03\u7528\u4e0a\u4e0b\u6587\u3002"),(0,n.kt)("li",{parentName:"ol"},"XmlRpc\u589e\u52a0\u8c03\u7528\u4e0a\u4e0b\u6587\u3002")),(0,n.kt)("p",null,"\u4fee\u6539"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u65e5\u5fd7\u7cfb\u7edf\u3002"),(0,n.kt)("li",{parentName:"ol"},"Rpc\u7684\u8c03\u7528\u4e0a\u4e0b\u6587\u5747\u91c7\u7528\u63a5\u53e3\uff0c\u4f8b\u5982\uff1aJsonRpc\u6539\u4e3aIJsonRpcCallContext\uff0cWebApi\u4e3aIWebApiCallContext\u3002"),(0,n.kt)("li",{parentName:"ol"},"IRpcActionFilter\u7684\u53c2\u6570\u5217\u8868\u3002")),(0,n.kt)("p",null,"\u4fee\u590d"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"UdpSession\u8d44\u6e90\u4e0d\u91ca\u653e\u7684Bug\u3002")),(0,n.kt)("p",null,"\u5220\u9664"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u5197\u4f59\u5143\u7d20\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-035"},"\u7248\u672c\u53f7: 0.3.5"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.8.12\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\uff0c\u589e\u5f3a\u578b\u66f4\u65b0\u3002\n\u66f4\u65b0\u8be6\u60c5\uff1a"),(0,n.kt)("p",null,"\u4f18\u5316"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u5404\u7c7b\u5ba2\u6237\u7aef\u53d1\u9001\u903b\u8f91\u3002"),(0,n.kt)("li",{parentName:"ol"},"Method\u7c7b\u7684\u8c03\u7528\u903b\u8f91\u3002")),(0,n.kt)("p",null,"\u65b0\u589e"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u9002\u914d\u5668\u53ef\u4ee5\u8bbe\u5b9a\u53d1\u9001IRequestInfo\u5bf9\u8c61\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u63d2\u4ef6\u65b0\u589eUseWebSocket\u7684\u5feb\u6377\u65b9\u5f0f\u3002"),(0,n.kt)("li",{parentName:"ol"},"ReconnectionPlugin\u63d2\u4ef6\u53ef\u4ee5\u83b7\u5f97\u91cd\u8fde\u6b21\u6570\u7684\u91cd\u8f7d\u8bbe\u7f6e\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u3010\u4f01\u4e1a\u7248\u3011TcpService\u7684\u670d\u52a1\u6ce8\u5165\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u3010\u4f01\u4e1a\u7248\u3011HttpService\u7684\u670d\u52a1\u6ce8\u5165\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u3010\u4f01\u4e1a\u7248\u3011IOC\u5bb9\u5668\u7684\u5171\u4eab\u4f7f\u7528\u3002")),(0,n.kt)("p",null,"\u4fee\u6539 "),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u5404\u7c7b\u53d1\u9001\u903b\u8f91\uff0c\u4ee5\u6700\u5c0f\u5316\u53d1\u9001\u65b9\u6cd5\u4e3a\u57fa\u7840\uff0c\u5176\u4f59\u65b9\u6cd5\u6539\u4e3a\u6269\u5c55\u65b9\u6cd5\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u76f8\u5173\u63a5\u53e3\u7684\u5b9e\u73b0\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u7531\u7f51\u53cb",(0,n.kt)("a",{parentName:"li",href:"https://gitee.com/dotnetchina/TouchSocket/pulls/11"},"\u4fee\u6539GetInfo"))),(0,n.kt)("p",null,"\u4fee\u590d"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Container\u83b7\u53d6\u6cdb\u578b\u5931\u8d25bug\u3002"),(0,n.kt)("li",{parentName:"ol"},"BetweenAnd\u9002\u914d\u5668\u9002\u914d\u5668\u90e8\u5206bug\u3002"),(0,n.kt)("li",{parentName:"ol"},"Router\u6807\u7b7e\u65e0\u6cd5\u8def\u7531\u7684bug\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u4fee\u590dTouchRpc\u63a8\u9001\u6587\u4ef6\u72b6\u6001\u4e0d\u6b63\u786ebug"),(0,n.kt)("li",{parentName:"ol"},"\u4fee\u590d\u72ec\u7acb\u7ebf\u7a0b\u5728\u65ad\u7ebf\u91cd\u8fde\u540e\u53d1\u9001bug\u3002")),(0,n.kt)("p",null,"\u5220\u9664"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u5197\u4f59\u7684\u53d1\u9001\u65b9\u6cd5\uff0c\u4e0d\u5f71\u54cd\u4e0a\u7248\u672c\u4efb\u4f55\u4f7f\u7528\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-024"},"\u7248\u672c\u53f7: 0.2.4"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.7.28\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\u3002\n\u66f4\u65b0\u8be6\u60c5\uff1a"),(0,n.kt)("p",null,"\u4f18\u5316 "),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u4f18\u5316IOC\u5bb9\u5668\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u4f18\u5316Metadata\u7684\u5199\u5165\u65b9\u5f0f\u3002"),(0,n.kt)("li",{parentName:"ol"},"FileLogger\uff0c\u5f53\u65e5\u5fd7\u6587\u4ef6\u8fbe\u52301Mb\u65f6\uff0c\u4f1a\u518d\u65b0\u589e\u6587\u4ef6\u5e8f\u53f7\u3002")),(0,n.kt)("p",null,"\u65b0\u589e"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Mapper\u7c7b\uff0c\u652f\u6301\u7b80\u5355\u7c7b\u578b\u6620\u5c04"),(0,n.kt)("li",{parentName:"ol"},"Tcp\u670d\u52a1\u5668\u3001\u5ba2\u6237\u7aef\u3001udp\u7b49\u589e\u52a0\u7aef\u53e3\u590d\u7528\u914d\u7f6e\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u3010\u4f01\u4e1a\u7248\u3011\u8f6e\u8be2\u5f0f\u65ad\u7ebf\u91cd\u8fde\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u3010\u4f01\u4e1a\u7248\u3011NATService\u8f6c\u53d1\u5ba2\u6237\u7aef\u91cd\u8fde\u3002")),(0,n.kt)("p",null,"\u4fee\u6539"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"RRQM\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316\uff0c\u6539\u540d\u4e3aFast\u3002"),(0,n.kt)("li",{parentName:"ol"},"TouchRpcClient\u8fde\u63a5\u65f6\u7684Metadata\uff0c\u6539\u4e3a\u7531Config\u914d\u7f6e\u6ce8\u5165\u3002"),(0,n.kt)("li",{parentName:"ol"},"FilePool\uff0c\u53d6\u6d88\u5ef6\u8fdf\u91ca\u653e\u673a\u5236\u3002")),(0,n.kt)("p",null,"\u4fee\u590d"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u4fee\u590dWebSocket\u8fde\u63a5\u95ee\u9898")),(0,n.kt)("p",null,"\u5220\u9664"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u5ba2\u6237\u7aef\u76f4\u63a5\u8c03\u7528\u7684\u77ed\u7ebf\u91cd\u8fde\u65b9\u5f0f\u3002\u4ec5\u4fdd\u7559\u5728Config\u6ce8\u5165\u7684\u529f\u80fd\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-010"},"\u7248\u672c\u53f7: 0.1.0"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.7.16\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u521d\u59cb\u5316\u7248\u672c\u53d1\u5e03\u3002\u7531RRQMSocket\u8fc1\u79fb\u800c\u6765\u3002"),(0,n.kt)("p",null,"\u8fc1\u79fb\u6307\u5357\uff1a"),(0,n.kt)("h3",{id:"1\u6240\u6709\u7c7b\u7684\u547d\u540d\u7a7a\u95f4\u4fee\u6539\u6b64\u5904\u5982\u679c\u7c7b\u578b\u540d\u672a\u4fee\u6539\u7684\u8bdd\u53ef\u7531vs\u667a\u80fd\u63d0\u793a\u89e3\u51b3"},"1.\u6240\u6709\u7c7b\u7684\u547d\u540d\u7a7a\u95f4\u4fee\u6539\uff0c\u6b64\u5904\u5982\u679c\u7c7b\u578b\u540d\u672a\u4fee\u6539\u7684\u8bdd\uff0c\u53ef\u7531vs\u667a\u80fd\u63d0\u793a\u89e3\u51b3\u3002"),(0,n.kt)("h3",{id:"2\u7c7b\u578b\u540d\u79f0\u4fee\u6539"},"2.\u7c7b\u578b\u540d\u79f0\u4fee\u6539"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"\u539f\u7c7b\u578b\u540d\u79f0"),(0,n.kt)("th",{parentName:"tr",align:null},"\u65b0\u7c7b\u578b\u540d\u79f0"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"RRQMBitConverter"),(0,n.kt)("td",{parentName:"tr",align:null},"TouchSocketBitConverter")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"RRQMConfig"),(0,n.kt)("td",{parentName:"tr",align:null},"TouchSocketConfig")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"RRQMConverter"),(0,n.kt)("td",{parentName:"tr",align:null},"TouchSocketConverter")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"RRQMDependencyObject"),(0,n.kt)("td",{parentName:"tr",align:null},"DependencyObject")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"MsgEventArgs"),(0,n.kt)("td",{parentName:"tr",align:null},"MsgEventArgs")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"RRQMEventAgrs"),(0,n.kt)("td",{parentName:"tr",align:null},"TouchSocketEventArgs")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"IServerProvider"),(0,n.kt)("td",{parentName:"tr",align:null},"IRpcServer")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"ServerProvider"),(0,n.kt)("td",{parentName:"tr",align:null},"RpcServer")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"RRQMOverlengthException"),(0,n.kt)("td",{parentName:"tr",align:null},"OverlengthException")))),(0,n.kt)("h3",{id:"3\u4f7f\u7528\u903b\u8f91\u4fee\u6539"},"3.\u4f7f\u7528\u903b\u8f91\u4fee\u6539"),(0,n.kt)("p",null,"1\uff09\u539fRRQMConfig\u8bbe\u7f6eLogger\u7684\u65b9\u6cd5\uff0c\u6539\u4e3a\u5bb9\u5668\u6ce8\u5165\uff1a\n",(0,n.kt)("img",{alt:"image.png",src:l(3710).Z,width:"1500",height:"277"}),"\n\u65ad\u7ebf\u91cd\u8fde\u903b\u8f91\n",(0,n.kt)("img",{alt:"image.png",src:l(9772).Z,width:"1409",height:"815"}),"\nRpcStore\u4f7f\u7528\u53d8\u66f4\n\u5982\u679c\u662f\u4ec5\u6709\u4e00\u4e2aRpc\u89e3\u6790\u5668\uff0c\u90a3\u4e48\u53ef\u4ee5\u76f4\u63a5\u5220\u9664RpcStore\u7684\u58f0\u660e\uff0c\u4ece\u800c\u4f7f\u7528\u5bf9\u5e94\u7684",(0,n.kt)("strong",{parentName:"p"},"\u89e3\u6790\u5668\u5b9e\u4f8b"),"\uff0c\u76f4\u63a5\u6ce8\u518c\u670d\u52a1\u3002\u7136\u540e\u53ef\u4ee5\u901a\u8fc7\u5176\u5c5e\u6027RpcStore\uff0c\u83b7\u53d6\u5230\u5177\u4f53\u7684RpcStore\u5b9e\u4f8b\u3002"),(0,n.kt)("p",null,"\u5982\u679c\u662f\u6709\u591a\u4e2a\u89e3\u6790\u5668\uff0c\u90a3\u4e48\uff0c\u9996\u5148\u53ef\u4ee5\u4f7f\u7528\u4efb\u610f\u4e00\u4e2a\u89e3\u6790\u5668\u7684RpcStore\u5c5e\u6027\u5b9e\u4f8b\uff0c\u4f5c\u4e3a\u4e3bRpcStore\uff0c\u7136\u540e\u6dfb\u52a0\u5176\u4ed6\u89e3\u6790\u5668\u3002\u5f53\u7136\u4e5f\u53ef\u4ee5\u76f4\u63a5new RpcStore\uff0c\u7136\u540e\u7edf\u4e00\u7ba1\u7406\u89e3\u6790\u5668\u3002\u5176\u4e2d\u6784\u9020\u51fd\u6570\u4e2d\u7684Container\u5bb9\u5668\uff0c\u53ef\u4ee5\u76f4\u63a5new Container()\uff0c\u4f46\u662f\u66f4\u5efa\u8bae\u4f7f\u7528\u548c\u89e3\u6790\u5668\u76f8\u540c\u7684\u5bb9\u5668\uff0c\u8fd9\u6837\u6ce8\u5165\u7684\u670d\u52a1\u4f1a\u53d8\u5f97\u5168\u5c40\u53ef\u7528\u3002"))}m.isMDXComponent=!0},3007:(e,t,l)=>{l.d(t,{Z:()=>a});const a=l.p+"assets/images/upgrade-1-6b82b0abeb6cf5bcaf6aca07f67ad2aa.png"},6866:(e,t,l)=>{l.d(t,{Z:()=>a});const a=l.p+"assets/images/upgrade-2-e69c2951e8df8d2c064b1990fb4ca3ba.png"},6257:(e,t,l)=>{l.d(t,{Z:()=>a});const a=l.p+"assets/images/upgrade-3-69fbf6d003e3a06604cf5aaf4689fe9e.png"},4475:(e,t,l)=>{l.d(t,{Z:()=>a});const a=l.p+"assets/images/upgrade-4-2d7db90014741755af54830e9ffc187d.png"},3710:(e,t,l)=>{l.d(t,{Z:()=>a});const a=l.p+"assets/images/upgrade-5-fe66cc273eb92e8ceed0135da45a3a1c.png"},9772:(e,t,l)=>{l.d(t,{Z:()=>a});const a=l.p+"assets/images/upgrade-6-4e52667e8ec250b8e2c5a9acf63eaaf2.png"}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/4c79e569.39d2c9d2.js b/handbook/build/assets/js/4c79e569.39d2c9d2.js deleted file mode 100644 index dcac19bc397fc9452b2f5d10cf5e84b3254d5776..0000000000000000000000000000000000000000 --- a/handbook/build/assets/js/4c79e569.39d2c9d2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[8707],{3905:(e,t,l)=>{l.d(t,{Zo:()=>k,kt:()=>s});var a=l(7294);function n(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}function r(e,t){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),l.push.apply(l,a)}return l}function o(e){for(var t=1;t=0||(n[l]=e[l]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(n[l]=e[l])}return n}var i=a.createContext({}),c=function(e){var t=a.useContext(i),l=t;return e&&(l="function"==typeof e?e(t):o(o({},t),e)),l},k=function(e){var t=c(e.components);return a.createElement(i.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var l=e.components,n=e.mdxType,r=e.originalType,i=e.parentName,k=p(e,["components","mdxType","originalType","parentName"]),m=c(l),s=n,d=m["".concat(i,".").concat(s)]||m[s]||u[s]||r;return l?a.createElement(d,o(o({ref:t},k),{},{components:l})):a.createElement(d,o({ref:t},k))}));function s(e,t){var l=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=l.length,o=new Array(r);o[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p.mdxType="string"==typeof e?e:n,o[1]=p;for(var c=2;c{l.d(t,{Z:()=>J});var a=l(7294),n=l(7462);const r=(e,t,l)=>e?"string"==typeof e?e:e[t]||l:l,o={display:"block"},p=e=>{let{size:t,color:l,style:p,...i}=e;const c=p?{...o,...p}:o;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:c},i),a.createElement("path",{d:"M856.4 292.8c-63.3-63.6-126.6-127.1-190.2-190.3-15.3-15.2-32.7-16.1-48.1-0.8-64.3 63.6-128.1 127.6-191.8 191.9-14 14.2-16.3 31.6-1.7 46 14.8 14.7 31.5 10.6 46.1-2.7 5.1-4.6 9.8-9.7 14.7-14.7 39.2-39.7 78.5-79.5 122.8-124.4 0 170 3 332.2-1.1 494-2.4 96.4-91.2 174.6-187.4 176.6-110.6 2.3-198.6-84.4-199-197.4-0.6-136.3-0.2-272.6-0.1-408.9 0-21.8-7.9-37.4-31.2-39.9-18.9-2-33.2 13.2-33.1 37.5 0 145.8-3.4 291.7 2.4 437.2 6 152.1 160.4 263.5 309.5 230.5C591.8 900 672.8 797.2 673.6 664.6c0.8-144 0.2-288.1 0.2-432.1v-33.3c11.2 10.2 17.6 15.4 23.3 21.3 38.5 38.4 76.7 77 115.3 115.2 14.8 14.6 32.2 19.2 47.8 2.9 13.8-14.8 10.3-31.7-3.8-45.8z",fill:r(l,0,"#333333")}))};p.defaultProps={size:18};const i=p,c={display:"block"},k=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...c,...o}:c;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M143.872 768a51.2 51.2 0 0 1-15.36-2.56 51.2 51.2 0 0 1-35.328-51.2V283.136a148.992 148.992 0 0 1 141.824-153.6h450.56a148.992 148.992 0 0 1 141.824 153.6V512a148.992 148.992 0 0 1-141.824 153.6H244.224l-60.928 80.896a51.2 51.2 0 0 1-39.424 21.504zM235.008 180.224a97.792 97.792 0 0 0-90.624 102.4v430.592L218.624 614.4h466.944a97.792 97.792 0 0 0 90.624-102.4V283.136a97.792 97.792 0 0 0-90.624-102.4z",fill:r(l,0,"#333333")}),a.createElement("path",{d:"M880.128 875.52a51.2 51.2 0 0 1-39.424-20.48l-60.928-80.896h-243.2a25.6 25.6 0 0 1 0-51.2h268.8l76.288 102.4v-295.936a25.6 25.6 0 0 1 25.6-25.6 25.6 25.6 0 0 1 25.6 25.6v293.888a51.2 51.2 0 0 1-51.2 51.2z",fill:r(l,1,"#333333")}))};k.defaultProps={size:18};const u=k,m={display:"block"},s=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...m,...o}:m;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M223.425605 449.2744l161.632237 0 0 253.65714c0 16.954137 13.745049 30.699186 30.699186 30.699186 16.95516 0 30.699186-13.745049 30.699186-30.699186l0-284.356326c0-16.95516-13.744026-30.699186-30.699186-30.699186L291.035446 387.876028l217.23665-248.51605L733.039255 387.580293 607.104031 387.580293c-16.954137 0-30.699186 13.745049-30.699186 30.699186l0 284.652062c0 16.954137 13.745049 30.699186 30.699186 30.699186s30.699186-13.745049 30.699186-30.699186L637.803217 448.978664l164.448376 0c12.140505 0 23.140023-7.154957 28.063149-18.251689 4.922103-11.097756 2.841721-24.053835-5.307889-33.05279L530.62315 72.570829c-5.881964-6.495948-14.273075-10.134825-23.024389-10.091846-8.763594 0.076748-17.076934 3.895727-22.844288 10.494005L200.312188 398.371056c-7.92653 9.067516-9.818623 21.931498-4.839215 32.896224S211.383338 449.2744 223.425605 449.2744z",fill:r(l,0,"#333333")}),a.createElement("path",{d:"M222.354204 829.113381l581.732178 0c16.954137 0 30.699186-13.745049 30.699186-30.699186s-13.745049-30.699186-30.699186-30.699186L222.354204 767.715009c-16.954137 0-30.699186 13.745049-30.699186 30.699186S205.400067 829.113381 222.354204 829.113381z",fill:r(l,1,"#333333")}),a.createElement("path",{d:"M804.086381 896.729361 222.354204 896.729361c-16.954137 0-30.699186 13.745049-30.699186 30.699186s13.745049 30.699186 30.699186 30.699186l581.732178 0c16.954137 0 30.699186-13.745049 30.699186-30.699186S821.041542 896.729361 804.086381 896.729361z",fill:r(l,2,"#333333")}))};s.defaultProps={size:18};const d=s,g={display:"block"},h=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...g,...o}:g;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M380.15463648 874.54223633c0 18.12744166-14.83154297 32.95898463-32.95898463 32.95898463s-32.95898463-14.83154297-32.95898462-32.95898463V228.9152832L172.71078883 370.86962865a33.04467773 33.04467773 0 0 1-46.60400416 0 33.04467773 33.04467773 0 0 1 0-46.6040034l197.55615234-198.14941406A32.76782227 32.76782227 0 0 1 347.0967749 116.52514674c0.03295924 0 0.06591772-0.03295924 0.09887695-0.03295924 1.54907201 0 2.90039088 0.69213867 4.41650366 0.88989258 2.66967773 0.39550781 5.40527318 0.59326172 7.94311548 1.61499049 12.03002904 4.94384766 20.59936549 16.71020508 20.59936549 30.45410156v725.0910642z m320.15698192 23.34155248a32.85351537 32.85351537 0 0 1-23.43383789 9.59106445c-0.03295924 0-0.06591772 0.03295924-0.09887696 0.03295924-1.54907201 0-2.90039088-0.69213867-4.41650365-0.92285182-2.70263697-0.36254857-5.40527318-0.56030248-7.94311549-1.61498972-12.03002904-4.91088842-20.59936549-16.67724584-20.59936473-30.42114309V149.45776367c0-18.12744166 14.83154297-32.95898463 32.95898387-32.95898463s32.95898463 14.83154297 32.95898463 32.95898463v645.60058619l141.52587916-141.92138697c12.81445313-12.82104467 33.81591797-12.82104467 46.63037109 0 12.78808619 12.81445313 12.78808619 33.77636719 0 46.60400416L700.3116184 897.88378881z",fill:r(l,0,"#333333")}))};h.defaultProps={size:18};const N=h,y={display:"block"},T=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...y,...o}:y;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1172 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M870.0416 250.4704a38.4 38.4 0 0 0-8.96 53.5552c13.056 18.2784 24.4224 37.8368 33.7408 58.112a38.4512 38.4512 0 0 0 50.944 18.8928 38.4512 38.4512 0 0 0 18.8416-50.944 436.0192 436.0192 0 0 0-40.96-70.6048 38.3488 38.3488 0 0 0-53.6064-9.0112zM181.4528 566.016a35.9936 35.9936 0 0 0 25.5488-10.5984L351.7952 410.624a36.096 36.096 0 1 0-51.0976-51.0976L217.6 442.5728C250.0096 278.1184 395.264 153.6 569.1392 153.6c50.7904 0 99.8912 10.3936 145.92 30.9248a38.4 38.4 0 1 0 31.232-70.0928 431.36 431.36 0 0 0-177.152-37.632c-214.6816 0-393.1136 156.416-428.4416 361.216L62.1568 359.4752a36.1984 36.1984 0 0 0-51.0976 51.0976l144.8448 144.7936a36.0448 36.0448 0 0 0 25.5488 10.6496zM978.5344 463.104a36.1984 36.1984 0 0 0-51.0976 0l-144.8448 144.7936a36.096 36.096 0 1 0 51.0976 51.0976l88.6272-88.576C894.3104 740.2496 746.8032 870.4 569.1392 870.4a357.7856 357.7856 0 0 1-325.2736-207.7184 38.4 38.4 0 1 0-69.7344 32.3072 434.3808 434.3808 0 0 0 394.9568 252.2112c215.1936 0 393.984-157.184 428.6464-362.7008l74.496 74.496a35.9936 35.9936 0 0 0 51.0976 0 36.096 36.096 0 0 0 0-51.0976l-144.7936-144.7936z",fill:r(l,0,"#333333")}))};T.defaultProps={size:18};const v=T,f={display:"block"},b=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...f,...o}:f;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M302 332a30 30 0 1 1 0-60h420a30 30 0 0 1 0 60H302zM302 542a30 30 0 0 1 0-60h420a30 30 0 0 1 0 60H302zM302 752a30 30 0 0 1 0-60h120a30 30 0 0 1 0 60H302z",fill:r(l,0,"#333333")}),a.createElement("path",{d:"M789.47 784.1a30 30 0 0 1 39.36 45.3l-144.24 125.25a30 30 0 0 1-19.68 7.35H214.85C163.4 962 122 919.46 122 867.38V156.62C122 104.54 163.4 62 214.85 62h594.3C860.6 62 902 104.54 902 156.62v529.05a30 30 0 1 1-60 0V156.62C842 137.3 827.09 122 809.15 122H214.85C196.91 122 182 137.3 182 156.62v710.76C182 886.7 196.91 902 214.85 902h438.84l135.78-117.9z",fill:r(l,1,"#333333")}),a.createElement("path",{d:"M692 931.19a30 30 0 1 1-60 0v-174.6C632 704.57 673.4 662 724.85 662h147.78a30 30 0 0 1 0 60h-147.78c-17.94 0-32.85 15.3-32.85 34.62v174.6z",fill:r(l,2,"#333333")}))};b.defaultProps={size:18};const x=b,w={display:"block"},C=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...w,...o}:w;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M512 883.2A371.2 371.2 0 1 0 140.8 512 371.2 371.2 0 0 0 512 883.2z m0 64a435.2 435.2 0 1 1 435.2-435.2 435.2 435.2 0 0 1-435.2 435.2z",fill:r(l,0,"#333333")}),a.createElement("path",{d:"M557.056 512l122.368 122.368a31.744 31.744 0 1 1-45.056 45.056L512 557.056l-122.368 122.368a31.744 31.744 0 1 1-45.056-45.056L466.944 512 344.576 389.632a31.744 31.744 0 1 1 45.056-45.056L512 466.944l122.368-122.368a31.744 31.744 0 1 1 45.056 45.056z",fill:r(l,1,"#333333")}))};C.defaultProps={size:18};const R=C,Z={display:"block"},E=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...Z,...o}:Z;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5 0.2 13 0.7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2c41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7 0.4-6.4 0.7-12.8 0.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3-20.1 11.8-42 20-64.9 24.3V484c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v396.5c-22.9-4.3-44.8-12.5-64.9-24.3-30.3-17.7-55.6-43-73.3-73.3C317.7 752 308 716.8 308 680V412h408v268z",fill:r(l,0,"#333333")}),a.createElement("path",{d:"M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z",fill:r(l,1,"#333333")}))};E.defaultProps={size:18};const z=E,M={display:"block"},P=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...M,...o}:M;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M512 71.68c-242.688 0-440.32 197.632-440.32 440.32s197.632 440.32 440.32 440.32 440.32-197.632 440.32-440.32-197.632-440.32-440.32-440.32z m0 819.2c-208.896 0-378.88-169.984-378.88-378.88s169.984-378.88 378.88-378.88 378.88 169.984 378.88 378.88-169.984 378.88-378.88 378.88z",fill:r(l,0,"#333333")}),a.createElement("path",{d:"M542.72 261.12H481.28v220.16H261.12v61.44h220.16v220.16h61.44v-220.16h220.16V481.28h-220.16z",fill:r(l,1,"#333333")}))};P.defaultProps={size:18};const S=P,O={display:"block"},I=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...O,...o}:O;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M384 896h-64v-70.4c0-15.2-10.4-28-24.8-31.2C159.2 768 64 644.8 64 496v-32h64v32c0 118.4 73.6 215.2 179.2 236 44.8 8.8 76.8 48 76.8 94.4v69.6zM704 896h-64v-70.4c0-45.6 32-85.6 76.8-94.4C822.4 711.2 896 614.4 896 496v-32h64v32c0 148.8-95.2 272-231.2 298.4-14.4 3.2-24.8 16-24.8 31.2v70.4zM512.8 640l-41.6-37.6c-147.2-133.6-244-208-244-316.8 0-88 68.8-156.8 156.8-156.8 49.6 0 97.6 23.2 128.8 60C544 152 592 128.8 641.6 128.8c88 0 156.8 68.8 156.8 156.8 0 108-96.8 183.2-244 316.8L512.8 640z",fill:r(l,0,"#333333")}))};I.defaultProps={size:18};const L=I,q={display:"block"},B=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...q,...o}:q;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M942.4615936 284.62787926c-14.30911886-14.12709945-37.31996786-14.05468217-51.48229632 0.21920654L517.97142983 661.27810333 139.75544149 286.45003606c-14.30911886-14.16232846-37.31996786-14.05468217-51.51948344 0.21920654-14.16232846 14.30911886-14.05468217 37.35519687 0.21920654 51.51948345l401.99014627 398.34974663c0.61847666 0.61847666 1.41897273 0.76526706 2.03940637 1.34655658 0.14483342 0.14483342 0.18201941 0.32685283 0.32685283 0.47364324 7.09877874 7.02636259 16.38375538 10.55911595 25.63154489 10.55911595 9.35739278 0 18.75001458-3.60516949 25.85075143-10.77636551l398.34974663-401.99014628C956.84312974 321.8382427 956.73548345 298.7921647 942.4615936 284.62787926z",fill:r(l,0,"#333333")}))};B.defaultProps={size:18};const A=B,j={display:"block"},D=e=>{let{size:t,color:l,style:o,...p}=e;const i=o?{...j,...o}:j;return a.createElement("svg",(0,n.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},p),a.createElement("path",{d:"M81.5384064 739.37212074c14.30911886 14.12709945 37.31996786 14.05468217 51.48229632-0.21920654L506.02857017 362.72189667 884.24455851 737.54996394c14.30911886 14.16232846 37.31996786 14.05468217 51.51948344-0.21920654 14.16232846-14.30911886 14.05468217-37.35519687-0.21920654-51.51948345l-401.99014627-398.34974663c-0.61847666-0.61847666-1.41897273-0.76526706-2.03940637-1.34655658-0.14483342-0.14483342-0.18201941-0.32685283-0.32685282-0.47364324-7.09877874-7.02636259-16.38375538-10.55911595-25.6315449-10.55911595-9.35739278 0-18.75001458 3.60516949-25.85075143 10.77636551l-398.34974663 401.99014628C67.15687026 702.1617573 67.26451655 725.2078353 81.5384064 739.37212074z",fill:r(l,0,"#333333")}))};D.defaultProps={size:18};const F=D,H=e=>{let{name:t,...l}=e;switch(t){case"youhua":return a.createElement(i,l);case"dayi":return a.createElement(u,l);case"shengji":return a.createElement(d,l);case"tiaozheng":return a.createElement(N,l);case"gengxin":return a.createElement(v,l);case"wendang":return a.createElement(x,l);case"shanchu":return a.createElement(R,l);case"bug":return a.createElement(z,l);case"xinzeng":return a.createElement(S,l);case"fuwu":return a.createElement(L,l);case"down":return a.createElement(A,l);case"up":return a.createElement(F,l)}return null},V="label_p8vM",W="icon_knQK";function J(e){const{children:t}=e,l={"\u65b0\u589e":{icon:"xinzeng",bgColor:"#39b54a"},"\u4fee\u590d":{icon:"bug",bgColor:"#9c26b0"},"\u6587\u6863":{icon:"wendang",bgColor:"rgb(79, 147, 255)"},"\u66f4\u65b0":{icon:"gengxin",bgColor:"#0081ff"},"\u8c03\u6574":{icon:"tiaozheng",bgColor:"#333"},"\u5347\u7ea7":{icon:"shengji",bgColor:"#e03997"},"\u79fb\u9664":{icon:"shanchu",bgColor:"#666"},"\u7b54\u7591":{icon:"dayi",bgColor:"#bbb"},"\u4f18\u5316":{icon:"youhua",bgColor:"#38e550"},"\u63a8\u8350":{bgColor:"#38e550"},"\u4f01\u4e1a\u7248":{bgColor:"#23AAF2"}};return a.createElement("label",{className:V,title:t,style:{backgroundColor:l[t].bgColor}},a.createElement(H,{name:l[t].icon,color:"white",size:14,className:W})," ",t)}},7271:(e,t,l)=>{l.r(t),l.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>k});var a=l(7462),n=(l(7294),l(3905)),r=(l(4996),l(510));const o={id:"upgrade",title:"\u5386\u53f2\u66f4\u65b0"},p=void 0,i={unversionedId:"upgrade",id:"upgrade",title:"\u5386\u53f2\u66f4\u65b0",description:"\u5347\u7ea7\u524d\u91cd\u70b9\u5173\u6ce8\u53ef\u80fd\u9020\u6210\u3010\u7834\u574f\u6027\u3011\u7684\u6807\u7b7e\u7c7b\u578b\uff1a\u4fee\u590d\u3001\u8c03\u6574\u3001\u79fb\u9664\u3001\u5347\u7ea7",source:"@site/docs/upgrade.mdx",sourceDirName:".",slug:"/upgrade",permalink:"/touchsocket/docs/upgrade",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/upgrade.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1676612957,formattedLastUpdatedAt:"Feb 17, 2023",frontMatter:{id:"upgrade",title:"\u5386\u53f2\u66f4\u65b0"},sidebar:"docs",previous:{title:"\u8bf4\u660e",permalink:"/touchsocket/docs/"},next:{title:"\u652f\u6301\u4f5c\u8005",permalink:"/touchsocket/docs/donate"}},c={},k=[{value:"v1.2",id:"v12",level:2},{value:"v1.1",id:"v11",level:2},{value:"v1.0.0",id:"v100",level:2},{value:"\u7248\u672c\u53f7: 0.7.0",id:"\u7248\u672c\u53f7-070",level:2},{value:"\u7248\u672c\u53f7: 0.6.0",id:"\u7248\u672c\u53f7-060",level:2},{value:"\u7248\u672c\u53f7: 0.5.0",id:"\u7248\u672c\u53f7-050",level:2},{value:"\u7248\u672c\u53f7: 0.4.5",id:"\u7248\u672c\u53f7-045",level:2},{value:"\u7248\u672c\u53f7: 0.3.5",id:"\u7248\u672c\u53f7-035",level:2},{value:"\u7248\u672c\u53f7: 0.2.4",id:"\u7248\u672c\u53f7-024",level:2},{value:"\u7248\u672c\u53f7: 0.1.0",id:"\u7248\u672c\u53f7-010",level:2},{value:"1.\u6240\u6709\u7c7b\u7684\u547d\u540d\u7a7a\u95f4\u4fee\u6539\uff0c\u6b64\u5904\u5982\u679c\u7c7b\u578b\u540d\u672a\u4fee\u6539\u7684\u8bdd\uff0c\u53ef\u7531vs\u667a\u80fd\u63d0\u793a\u89e3\u51b3\u3002",id:"1\u6240\u6709\u7c7b\u7684\u547d\u540d\u7a7a\u95f4\u4fee\u6539\u6b64\u5904\u5982\u679c\u7c7b\u578b\u540d\u672a\u4fee\u6539\u7684\u8bdd\u53ef\u7531vs\u667a\u80fd\u63d0\u793a\u89e3\u51b3",level:3},{value:"2.\u7c7b\u578b\u540d\u79f0\u4fee\u6539",id:"2\u7c7b\u578b\u540d\u79f0\u4fee\u6539",level:3},{value:"3.\u4f7f\u7528\u903b\u8f91\u4fee\u6539",id:"3\u4f7f\u7528\u903b\u8f91\u4fee\u6539",level:3}],u={toc:k};function m(e){let{components:t,...o}=e;return(0,n.kt)("wrapper",(0,a.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("admonition",{type:"tip"},(0,n.kt)("mdxAdmonitionTitle",{parentName:"admonition"},(0,n.kt)("inlineCode",{parentName:"mdxAdmonitionTitle"},"TouchSocket")," \u6846\u67b6\u5347\u7ea7/\u53d1\u7248\u89c4\u5219"),(0,n.kt)("p",{parentName:"admonition"},(0,n.kt)("strong",{parentName:"p"},"\u5347\u7ea7\u524d\u91cd\u70b9\u5173\u6ce8\u53ef\u80fd\u9020\u6210\u3010\u7834\u574f\u6027\u3011\u7684\u6807\u7b7e\u7c7b\u578b"),"\uff1a",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d"),"\u3001",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574"),"\u3001",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u79fb\u9664"),"\u3001",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u5347\u7ea7")),(0,n.kt)("p",{parentName:"admonition"},"\u7248\u672c\u53f7\u89c4\u5219\uff1a",(0,n.kt)("inlineCode",{parentName:"p"},"\u4e3b\u7248\u672c\u53f7.\u6b21\u7248\u672c\u53f7.\u4fee\u8ba2\u7248\u672c\u53f7")),(0,n.kt)("ul",{parentName:"admonition"},(0,n.kt)("li",{parentName:"ul"},"\u53ea\u8981\u3010\u786e\u8ba4\u3011\u4e3a\u6846\u67b6 ",(0,n.kt)("inlineCode",{parentName:"li"},"bug"),"\uff0c\u5219\u5f53\u5929\u4fee\u590d\uff0c\u5f53\u5929\u53d1\u7248\uff0c\u4fee\u8ba2\u7248\u672c\u53f7 ",(0,n.kt)("inlineCode",{parentName:"li"},"\u52a0 1"),"\u3002"),(0,n.kt)("li",{parentName:"ul"},"\u5982\u679c ",(0,n.kt)("inlineCode",{parentName:"li"},".csproj")," \u6587\u4ef6\u6709\u53d8\u66f4\uff0c\u5219\u5f53\u5929\u53d1\u7248\uff0c\u4fee\u8ba2\u7248\u672c\u53f7 ",(0,n.kt)("inlineCode",{parentName:"li"},"\u52a0 1"),"\u3002"),(0,n.kt)("li",{parentName:"ul"},"\u5176\u4f59\u60c5\u51b5\uff0c\u6bcf\u5e74\u53d1\u5e03\u4e00\u4e2a ",(0,n.kt)("inlineCode",{parentName:"li"},"\u4e3b\u7248\u672c"),"\u3002"))),(0,n.kt)("h2",{id:"v12"},"v1.2"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2023.2.15"),(0,n.kt)("p",null,"\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\u3002"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," TouchRpc\u652f\u6301\u547d\u540d\u5143\u7ec4\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," Rpc\u6e90\u4ee3\u7801\u751f\u6210\u7b56\u7565\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," TouchRpc\u5728Websocket\u534f\u8bae\u4e0b\uff0c\u542f\u52a8\uff0c\u8fde\u63a5\u5f02\u5e38bug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," TouchRpc\u5728\u8c03\u7528WaitSend\u4e0b\u5931\u8d25\u7684bug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," TouchRpc\u5728Handshaked\u65f6\uff0c\u8c03\u7528Rpc\u8d85\u65f6bug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," \u5e8f\u5217\u5316\u3001\u53cd\u5c04\u5728unity\u4e2d\u4f7f\u7528il2cpp\u7f16\u8bd1\u7684bug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," \u53cd\u5e8f\u5217\u5316\u5728\u521d\u6b21\u52a0\u8f7d\u65f6\u4f1a\u5931\u8d25\u7684bug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," BytePool\u6ca1\u6709\u516c\u5171\u6784\u9020\u51fd\u6570\u7684bug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," ws\u534f\u8bae\u7684TouchRpc\u670d\u52a1\u7aef\uff0c\u589e\u52a0HttpContext\u4e0a\u4e0b\u6587\u83b7\u53d6\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," ByteBlock\u5bf9\u4e8eint\uff0clong\u7b49\u6570\u636e\uff0c\u5199\u5165\u548c\u8bfb\u53d6\u7684\u65f6\u5019\u652f\u6301\u5927\u5c0f\u7aef\u6307\u5b9a\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," IServicePlugin\u63d2\u4ef6\uff0c\u7528\u4e8e\u663e\u793a\u901a\u77e5\u670d\u52a1\u5668\u7684\u542f\u52a8\u72b6\u6001\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," Rpc\u652f\u6301\u63a5\u53e3\u7279\u6027\u6807\u8bb0\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u5c06BytePool\u7531\u9759\u6001\u8c03\u6574\u4e3a\u5b9e\u4f8b\uff0c\u4e14\u7531\u5176Default\u5b9e\u4f8b\u4f5c\u4e3a\u9ed8\u8ba4\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"v11"},"v1.1"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2023.1.13"),(0,n.kt)("p",null,"\u66f4\u65b0\u63cf\u8ff0\uff1a\u5c0f\u7248\u672c\u5347\u7ea7\uff0c\u53ef\u80fd\u4f1a\u6709\u4e0d\u517c\u5bb9\u3002\u8bf7\u6309\u4e0b\u5217\u63d0\u793a\u4fee\u6539\u3002 "),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," TouchRpc\u7cfb\u6587\u4ef6\u4f20\u8f93\u65f6\uff0c\u6587\u4ef6\u5939\u4e0d\u5b58\u5728\u7684\u63d0\u793a\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," WaitingClient\uff0c\u5f53\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\u65f6\uff0c\u53ef\u9009\u662f\u5426\u629b\u51fa\u5f02\u5e38\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," Fast\u5e8f\u5217\u5316\u65f6\u3002\u53ef\u9009\u5e8f\u5217\u5316\u53ea\u8bfb\u5c5e\u6027\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," \u591a\u4e2a\u4e0d\u7a33\u5b9aBug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," Tcp\u5ba2\u6237\u7aef\u65b0\u589eDisconnecting\u4e8b\u4ef6\u3002\u5728\u4e3b\u52a8Close\u65f6\u751f\u6548\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u591a\u4e2a\u4e8b\u4ef6\u7c7b\u540d\u79f0\u4fee\u6539\uff0c\u8bf7\u6309\u7167\u63d0\u793a\u4fee\u6539\u5373\u53ef\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u79fb\u9664")," \u591a\u4e2a\u65e0\u7528\u65b9\u6cd5\u53c2\u6570\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"v100"},"v1.0.0"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2023.1.1"),(0,n.kt)("p",null,"\u66f4\u65b0\u63cf\u8ff0\uff1a\u5927\u7248\u672c\u5347\u7ea7\uff0c\u8bf7\u8be6\u7ec6\u9605\u8bfb\u4e0b\u5217\u66f4\u65b0\u65e5\u5fd7\u3002"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u5347\u7ea7")," \u5c06\u6700\u9ad8\u7248\u672c\u5347\u7ea7\u4e3aNET7\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," Tcp\u7cfb\u5f02\u6b65\u53d1\u9001\u6548\u7387\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4f18\u5316")," TouchRpc\u7cfbChannel\u7684\u7a33\u5065\u6027\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u4fee\u590d")," \u591a\u4e2a\u4e0d\u7a33\u5b9aBug\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," ValueByteBlock\uff0c\u5728\u7b80\u5355\u4ee3\u7801\u5757\u91cc\u9762\u80fd\u6709\u6548\u51cf\u5c11\u521b\u5efa\u7684\u7c7b\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," MemoryCache\u7c7b\uff0c\u5176\u529f\u80fd\u7c7b\u4f3c\u5fae\u8f6f\u5b98\u65b9\u3002\u4f46\u662f\u652f\u6301\u5168\u90e8\u6cdb\u578b\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," ",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/ag9tyar9mmhsme0m"},"IPackage\u7cfb"),"\u3002\u8be5\u7cfb\u5217\u80fd\u4ee5\u8d85\u9ad8\u6548\u7387\u7684\u8fdb\u884c\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," SingleTimer\u7c7b\uff0c\u4e0d\u53ef\u91cd\u5165\u7684Timer\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," Jsonrpc\u652f\u6301\u81ea\u5b9a\u4e49\u9002\u914d\u5668\u89e3\u6790\uff08EE\uff09"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," \u4e25\u91cdTouchRpc\u7cfbOnRouting\u901a\u77e5\uff0c\u6240\u6709\u7684\u5ba2\u6237\u7aef\u4e4b\u95f4\u7684\u901a\u4fe1\uff0c\u90fd\u5fc5\u987b\u7ecf\u8fc7OnRouting\u7684\u7b5b\u67e5\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," TouchRpc\u7cfb\u5c0f\u6587\u4ef6\u4f20\u8f93\uff0c\u5728\u6587\u4ef6\u5c0f\u4e8e1Mb\u65f6\uff0c\u5176\u4f20\u8f93\u6548\u7387\u662f\u5e38\u89c4\u4f20\u8f93\u768410\u500d\u4ee5\u4e0a\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," TouchRpc\u7cfb\u8d85\u5927\u6587\u4ef6\u591a\u94fe\u8def\u4f20\u8f93\uff0c\u652f\u6301\u591a\u4e2a\u5ba2\u6237\u7aef\u534f\u540c\u4f20\u8f93\u540c\u4e00\u4e2a\u6587\u4ef6\uff0c\u8fd9\u5728\u4e92\u8054\u7f51\u73af\u5883\u4e2d\uff0c\u6548\u7387\u6bd4\u5e38\u89c4\u4f20\u8f93\u63d0\u9ad8\u7c7b3-5\u500d\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u65b0\u589e")," TouchRpc\u7cfbRedis\u7ec4\u4ef6\uff0c\u80fd\u5b9e\u73b0\u53cc\u7aef\u5171\u540c\u5b58\u50a8\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u4e25\u91cd\u7cbe\u7b80\u6240\u6709\u547d\u540d\u7a7a\u95f4\uff0c\u5220\u9664\u6240\u6709\u4e09\u7ea7\u547d\u540d\u7a7a\u95f4\u3002\u4f8b\u5982\uff1aTouchSocket.Core.ByteManager\u7cbe\u7b80\u4e3aTouchSocket.Core\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u4e25\u91cd\u5220\u9664Newtonsoft.Json\u7684\u6e90\u4ee3\u7801\u5d4c\u5165\u3002\u5168\u5c40\u7684Json\u4f1a\u6839\u636e\u73af\u5883\u52a8\u6001\u8c03\u6574\uff0c\u8be6\u60c5\u89c1",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/emqy43#PfVh1"},"Json\u5de5\u5177")),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u4e25\u91cd\u6846\u67b6\u9ed8\u8ba4\u65e5\u5fd7\u7531ConsoleLogger\uff0c\u66ff\u6362\u4e3aEmptyLogger\uff08\u4e0d\u8f93\u51fa\u4efb\u4f55\u4e1c\u897f\uff09\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u4e25\u91cdTcp\u5168\u7cfb\uff0c\u5728\u8fde\u63a5\u65f6\uff0cID\u7684\u521d\u59cb\u503c\u4f7f\u7528long\u7c7b\u578b\u4ece0\u9012\u589e\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u4e25\u91cdTcp\u670d\u52a1\u5668\uff0c\u5c06\u5b9a\u65f6\u6e05\u7406\u65e0\u6570\u636e\u4ea4\u4e92\u7684\u9009\u9879\u66ff\u6362\u4e3aUseCheckClear\u63d2\u4ef6\u3002\u5e76\u4e14\u9ed8\u8ba4\u6ca1\u6709\u542f\u7528\uff0c\u9700\u8981\u624b\u52a8\u52a0\u5165\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," Tcp\u7cfb\u9002\u914d\u5668\uff0c\u53d6\u6d88\u90e8\u5206\u53c2\u6570\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," DataLock\u6539\u540d\u4e3aDataSecurity\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," EasyAction\u6539\u540dEasyTask\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," IMessage\u6539\u540dIMessageObject\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," TokenInstance\u6539\u540dMessageInstance\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," TouchRpc\u7cfb\uff0c\u7cbe\u7b80\u5e38\u89c4\u6587\u4ef6\u4f20\u8f93\u64cd\u4f5c\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u8c03\u6574")," \u4e25\u91cdTouchRpc\u7cfb\uff0c\u6240\u6709\u63d2\u4ef6\u901a\u77e5\u53c2\u6570\uff0c\u9ed8\u8ba4\u90fd\u8bbe\u4e3a\u4e0d\u5141\u8bb8\u64cd\u4f5c\uff0c\u9700\u8981\u624b\u52a8\u8bbe\u7f6ee.IsPermitOperation=true\u3002"),(0,n.kt)("li",{parentName:"ul"},"\xa0",(0,n.kt)(r.Z,{mdxType:"Tag"},"\u79fb\u9664")," Newtonsoft.Json\u7684\u6e90\u4ee3\u7801\u5d4c\u5165\u3002\u5168\u5c40\u7684Json\u4f1a\u6839\u636e\u73af\u5883\u52a8\u6001\u8c03\u6574\uff0c\u8be6\u60c5\u89c1",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/emqy43#PfVh1"},"Json\u5de5\u5177"),"\u3002")),(0,n.kt)("p",null,(0,n.kt)("strong",{parentName:"p"},(0,n.kt)("em",{parentName:"strong"}," \u66f4\u65b0\u793a\u4f8b\u6307\u5357 "))),(0,n.kt)("p",null,"\uff081\uff09\u9002\u914d\u5668\u53c2\u6570\u62a5\u9519\uff1a\u76f4\u63a5\u5220\u9664isAsync\u53c2\u6570\uff0c\u4ee5\u53caisAsync\u4e3a",(0,n.kt)("strong",{parentName:"p"},"True"),"\u7684\u6240\u6709\u903b\u8f91\u3002\n",(0,n.kt)("img",{alt:"image.png",src:l(9722).Z,width:"1500",height:"91"}),"\n\uff082\uff09\u4f9d\u8d56\u5c5e\u6027\u7684\u58f0\u660e\u62a5\u9519\uff1a\u589e\u52a0\u6cdb\u578b\u7ea6\u675f\u5373\u53ef\uff0c\u8be6\u60c5\u67e5\u770b",(0,n.kt)("a",{parentName:"p",href:"https://www.yuque.com/rrqm/touchsocket/ubk57o#jyzSl"},"\u4f9d\u8d56\u5c5e\u6027"),"\n",(0,n.kt)("img",{alt:"image.png",src:l(9004).Z,width:"1500",height:"200"}),"\n\uff083\uff09\u670d\u52a1\u7aef\u5b9a\u65f6\u6e05\u7406\u8b66\u544a\uff1a\u5728\u914d\u7f6e\u63d2\u4ef6\u4e2d\u4f7f\u7528UseCheckClear\uff0c\u5e76\u4e14\u8fdb\u884c\u76f8\u5173\u914d\u7f6e\u3002\n",(0,n.kt)("img",{alt:"image.png",src:l(8031).Z,width:"1500",height:"281"}),"\n",(0,n.kt)("img",{alt:"image.png",src:l(8967).Z,width:"1500",height:"388"})),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-070"},"\u7248\u672c\u53f7: 0.7.0"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.9.21\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\uff0c\u589e\u5f3a\u578b\u66f4\u65b0\u3002",(0,n.kt)("strong",{parentName:"p"},"RPC\u5185\u5bb9\u9700\u8981\u5ba2\u6237\u7aef\u4e0e\u670d\u52a1\u5668\u540c\u6b65\u66f4\u65b0"),"\u3002\n\u66f4\u65b0\u8be6\u60c5\uff1a"),(0,n.kt)("p",null,"\u4f18\u5316"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Fast\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u5e8f\u5217\u5316\u3002"),(0,n.kt)("li",{parentName:"ol"},"TouchRpc\u5168\u7cfb\uff0c\u5728\u6587\u4ef6\u4f20\u8f93\u7b49\u5927\u578bIO\u65f6\uff0c\u7531\u4e8e\u5fc3\u8df3\u5931\u8d25\u800c\u65ad\u5f00\u8fde\u63a5\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u4f18\u5316AspNetCore\u7684IContainer\u3002"),(0,n.kt)("li",{parentName:"ol"},"TcpCommandLinePlugin\u4e0eWSCommandLinePlugin\u652f\u6301\u83b7\u53d6\u5ba2\u6237\u7aef\u53c2\u6570\u3002")),(0,n.kt)("p",null,"\u65b0\u589e"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u63d2\u4ef6\u5b9e\u4f8b\u4f1a\u4ee5\u5355\u4f8b\u6ce8\u5165\u5bb9\u5668\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u6240\u6709\u9002\u914d\u5668\u652f\u6301",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/83526e6320dfc85fef317d850aa51e92#Z0S0g"},"\u7f13\u5b58\u8d85\u65f6"),"\u8bbe\u5b9a\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u4fee\u6539\u6240\u6709\u4e8b\u4ef6\u4e3a\u59d4\u6258\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u5f00\u653e",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/55e5bbf58745fa639dba511c7bcd54d1#WqOmh"},"AspnetCore"),"\u521b\u5efaTcp\uff0cHttp\u7b49\u670d\u52a1\u5668\u7684\u914d\u7f6e\u3002"),(0,n.kt)("li",{parentName:"ol"},"IClient\u589e\u52a0\u53d1\u9001\u3001\u63a5\u6536\u7684\u6700\u540e\u65f6\u95f4\u8bb0\u5f55\u3002"),(0,n.kt)("li",{parentName:"ol"},"Http\u652f\u6301\u591a\u6587\u4ef6\u4e0a\u4f20\uff08\u76ee\u524d\u4ec5\u652f\u6301\u5c0f\u6587\u4ef6\uff0c\u5177\u4f53\u5927\u5c0f\u4ee5\u5b9e\u9645\u8fd0\u884c\u5185\u5b58\u4e3a\u51c6\uff0c\u5b9e\u6d4b100Mb\u6ca1\u95ee\u9898\uff09\u3002"),(0,n.kt)("li",{parentName:"ol"},"Websocket\u63d2\u4ef6\u9ed8\u8ba4\u4f1a\u5904\u7406Close\u62a5\u6587\u3002\u4e14\u63d2\u4ef6\u652f\u6301Close\u3002"),(0,n.kt)("li",{parentName:"ol"},"Rpc\u652f\u6301\u6a21\u677f\u4ee3\u7801\u91cd\u5199\u3002"),(0,n.kt)("li",{parentName:"ol"},"TouchRpc\u652f\u6301\u5143\u7ec4\u3002"),(0,n.kt)("li",{parentName:"ol"},"JsonRpc\u652f\u6301Websocket\u534f\u8bae\u3002")),(0,n.kt)("p",null,"\u4fee\u6539 "),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"IScopedContainer\u4fee\u6539\u4e3aIContainerProvider")),(0,n.kt)("p",null,"\u4fee\u590d"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"BytePool\u56de\u6536\u5185\u5b58\u65f6\u4e0d\u5224\u65ad\u5927\u5c0f\u7684bug\u3002")),(0,n.kt)("p",null,"\u5220\u9664"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u65e0\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-060"},"\u7248\u672c\u53f7: 0.6.0"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.9.10\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\uff0c\u589e\u5f3a\u578b\u66f4\u65b0\u3002",(0,n.kt)("strong",{parentName:"p"},"\u4e13\u4e3aUnity 3D\u9002\u914d"),"\u3002\n\u66f4\u65b0\u8be6\u60c5\uff1a"),(0,n.kt)("p",null,"\u4f18\u5316"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Gzip\u7684\u538b\u7f29\u6548\u7387\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u53d1\u9001\u6548\u7387\u3002")),(0,n.kt)("p",null,"\u65b0\u589e"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"IDataCompressor\u6570\u636e\u4f20\u8f93\u538b\u7f29\u63a5\u53e3\u3002"),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/ukq0mu"},"RemoteStream"),"\u652f\u6301\u6570\u636e\u8bfb\u5199\u538b\u7f29\u3002"),(0,n.kt)("li",{parentName:"ol"},"WaitResultPackageBase\u7c7b\uff0c\u4e13\u5c5e\u975e\u5e8f\u5217\u5316\u7684\u6570\u636e\u683c\u5f0f\u5316\u3002"),(0,n.kt)("li",{parentName:"ol"},"DelaySender",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/1f21a56ee75f896a5b5b38b37b071881#RL0kx"},"\u5ef6\u8fdf\u7f13\u5b58\u53d1\u9001"),"\u3002")),(0,n.kt)("p",null,"\u4fee\u6539"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u65e0")),(0,n.kt)("p",null,"\u4fee\u590d"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Rpc\u6ce8\u518c\u670d\u52a1\u4e3a\u5355\u4f8b\u65f6\uff0c\u5b9e\u9645\u4e0a\u662f\u77ac\u65f6\u670d\u52a1\u7684bug\u3002")),(0,n.kt)("p",null,"\u5220\u9664"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u72ec\u7acb\u7ebf\u7a0b\u53d1\u9001\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-050"},"\u7248\u672c\u53f7: 0.5.0"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.9.1\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\uff0c\u589e\u5f3a\u578b\u66f4\u65b0\u3002\n\u66f4\u65b0\u8be6\u60c5\uff1a"),(0,n.kt)("p",null,"\u4f18\u5316"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u5168\u5c40\u8d44\u6e90\u7684\u83b7\u53d6\u903b\u8f91\u3002")),(0,n.kt)("p",null,"\u65b0\u589e"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Container\u589e\u52a0\u5378\u8f7d\u6ce8\u518c\u529f\u80fd\u3002"),(0,n.kt)("li",{parentName:"ol"},"FilePool\u65b0\u589eFileStorageStream\u7684\u83b7\u53d6\u3002"),(0,n.kt)("li",{parentName:"ol"},"http\u5ba2\u6237\u7aef\uff08\u53cawebsocket\uff09\u652f\u6301\u4ee3\u7406\u548c\u9a8c\u8bc1\u4ee3\u7406\u3002"),(0,n.kt)("li",{parentName:"ol"},"TouchRpc\u5168\u7cfb\u65b0\u589e",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/pearz0"},"\u8fdc\u7a0b\u6587\u4ef6\u64cd\u4f5c")),(0,n.kt)("li",{parentName:"ol"},"TouchRpc\uff08\u9664udp\uff09\u65b0\u589e",(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/ukq0mu"},"\u8fdc\u7a0b\u6d41\u8bbf\u95ee"))),(0,n.kt)("p",null,"\u4fee\u6539"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u65e0")),(0,n.kt)("p",null,"\u4fee\u590d"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u4fee\u590dHttp\u5ba2\u6237\u7aef\u8bf7\u6c42\u91cd\u590dHeader\u65f6\u7684bug\u3002")),(0,n.kt)("p",null,"\u5220\u9664"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"TouchRpc\u5168\u7cfb\u7684\u4e8b\u4ef6\u64cd\u4f5c\uff0c\u63a8\u8350\u76f4\u63a5\u63d2\u4ef6\u7684\u65b9\u5f0f\uff0c\u6216\u8005\u4f7f\u7528TouchRpcActionPlugin\u7136\u540e\u6dfb\u52a0\u59d4\u6258\u3002")),(0,n.kt)("p",null,"\u66f4\u65b0\u793a\u4f8b\nTouchRpc\u7684\u76f8\u5173\u4e8b\u4ef6\u5747\u5df2\u4f7f\u7528\u63d2\u4ef6\u4ee3\u66ff\u3002\u6240\u4ee5\u8bf7\u4f7f\u7528\u63d2\u4ef6\u5b9e\u73b0\u64cd\u4f5c\u3002\u5982\u679c\u9700\u8981\u4e8b\u4ef6\u7b49\u529f\u80fd\u7684\u8bdd\uff0c\u53ef\u4ee5\u7528TouchRpcActionPlugin\u7684\u63d2\u4ef6\u5b9e\u73b0\u3002\u4f8b\u5982\uff1a"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-csharp"},'.UsePlugin()\n.ConfigurePlugins(a=> \n{\n a.Add>()//\u6b64\u5904\u7684\u903b\u8f91\u53ef\u7528\u63d2\u4ef6\u66ff\u4ee3\u5b8c\u6210\u3002\n .SetFileTransfering((client, e) =>\n {\n //\u6709\u53ef\u80fd\u662f\u4e0a\u4f20\uff0c\u4e5f\u6709\u53ef\u80fd\u662f\u4e0b\u8f7d\n client.Logger.Info($"\u670d\u52a1\u5668\u8bf7\u6c42\u4f20\u8f93\u6587\u4ef6\uff0cID={client.ID}\uff0c\u8bf7\u6c42\u7c7b\u578b={e.TransferType}\uff0c\u6587\u4ef6\u540d={e.FileInfo.FileName}");\n })\n .SetFileTransfered((client, e) =>\n {\n //\u4f20\u8f93\u7ed3\u675f\uff0c\u4f46\u662f\u4e0d\u4e00\u5b9a\u6210\u529f\uff0c\u9700\u8981\u4ecee.Result\u5224\u65ad\u72b6\u6001\u3002\n client.Logger.Info($"\u670d\u52a1\u5668\u4f20\u8f93\u6587\u4ef6\u7ed3\u675f\uff0cID={client.ID}\uff0c\u8bf7\u6c42\u7c7b\u578b={e.TransferType}\uff0c\u6587\u4ef6\u540d={e.FileInfo.FileName}\uff0c\u8bf7\u6c42\u72b6\u6001={e.Result}");\n });\n})\n')),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-045"},"\u7248\u672c\u53f7: 0.4.5"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.8.25\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\uff0c\u589e\u5f3a\u578b\u66f4\u65b0\u3002\n\u66f4\u65b0\u8be6\u60c5\uff1a"),(0,n.kt)("p",null,"\u4f18\u5316"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"FileLogger\u7684\u5199\u5165\u903b\u8f91\uff0c\u5927\u5927\u5730\u63d0\u5347\u4e86\u5199\u5165\u6548\u7387\u3002")),(0,n.kt)("p",null,"\u65b0\u589e"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/ofnliu"},"Pipeline\u9002\u914d\u5668")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("a",{parentName:"li",href:"https://www.yuque.com/rrqm/touchsocket/wug4bv"},"TLV\u9002\u914d\u5668")),(0,n.kt)("li",{parentName:"ol"},"WaitingClient\u652f\u6301\u6309\u6761\u4ef6\u7b49\u5f85\u8fd4\u56de\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u65e5\u5fd7\u7cfb\u7edf\u53ef\u4ee5\u7b5b\u9009\u65e5\u5fd7\u7684\u8f93\u51fa\u7c7b\u578b"),(0,n.kt)("li",{parentName:"ol"},"Rpc\u7cfb\u7edf\uff0c\u53ef\u4ee5\u4f7f\u7528\u5355\u4f8b\u3001\u77ac\u65f6\u751f\u547d\u5468\u671f\u7684\u670d\u52a1\u3002"),(0,n.kt)("li",{parentName:"ol"},"Rpc\u7cfb\u7edf\uff0c\u53ef\u5b9a\u4e49\u6301\u4e45\u5316\u6a21\u578b\u3002"),(0,n.kt)("li",{parentName:"ol"},"Rpc\u5728\u4f7f\u7528\u77ac\u65f6\u751f\u547d\u5468\u671f\u7684\u670d\u52a1\u65f6\uff0c\u53ef\u4ee5\u76f4\u63a5\u83b7\u53d6\u8c03\u7528\u4e0a\u4e0b\u6587\u3002"),(0,n.kt)("li",{parentName:"ol"},"XmlRpc\u589e\u52a0\u8c03\u7528\u4e0a\u4e0b\u6587\u3002")),(0,n.kt)("p",null,"\u4fee\u6539"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u65e5\u5fd7\u7cfb\u7edf\u3002"),(0,n.kt)("li",{parentName:"ol"},"Rpc\u7684\u8c03\u7528\u4e0a\u4e0b\u6587\u5747\u91c7\u7528\u63a5\u53e3\uff0c\u4f8b\u5982\uff1aJsonRpc\u6539\u4e3aIJsonRpcCallContext\uff0cWebApi\u4e3aIWebApiCallContext\u3002"),(0,n.kt)("li",{parentName:"ol"},"IRpcActionFilter\u7684\u53c2\u6570\u5217\u8868\u3002")),(0,n.kt)("p",null,"\u4fee\u590d"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"UdpSession\u8d44\u6e90\u4e0d\u91ca\u653e\u7684Bug\u3002")),(0,n.kt)("p",null,"\u5220\u9664"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u5197\u4f59\u5143\u7d20\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-035"},"\u7248\u672c\u53f7: 0.3.5"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.8.12\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\uff0c\u589e\u5f3a\u578b\u66f4\u65b0\u3002\n\u66f4\u65b0\u8be6\u60c5\uff1a"),(0,n.kt)("p",null,"\u4f18\u5316"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u5404\u7c7b\u5ba2\u6237\u7aef\u53d1\u9001\u903b\u8f91\u3002"),(0,n.kt)("li",{parentName:"ol"},"Method\u7c7b\u7684\u8c03\u7528\u903b\u8f91\u3002")),(0,n.kt)("p",null,"\u65b0\u589e"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u9002\u914d\u5668\u53ef\u4ee5\u8bbe\u5b9a\u53d1\u9001IRequestInfo\u5bf9\u8c61\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u63d2\u4ef6\u65b0\u589eUseWebSocket\u7684\u5feb\u6377\u65b9\u5f0f\u3002"),(0,n.kt)("li",{parentName:"ol"},"ReconnectionPlugin\u63d2\u4ef6\u53ef\u4ee5\u83b7\u5f97\u91cd\u8fde\u6b21\u6570\u7684\u91cd\u8f7d\u8bbe\u7f6e\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u3010\u4f01\u4e1a\u7248\u3011TcpService\u7684\u670d\u52a1\u6ce8\u5165\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u3010\u4f01\u4e1a\u7248\u3011HttpService\u7684\u670d\u52a1\u6ce8\u5165\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u3010\u4f01\u4e1a\u7248\u3011IOC\u5bb9\u5668\u7684\u5171\u4eab\u4f7f\u7528\u3002")),(0,n.kt)("p",null,"\u4fee\u6539 "),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u5404\u7c7b\u53d1\u9001\u903b\u8f91\uff0c\u4ee5\u6700\u5c0f\u5316\u53d1\u9001\u65b9\u6cd5\u4e3a\u57fa\u7840\uff0c\u5176\u4f59\u65b9\u6cd5\u6539\u4e3a\u6269\u5c55\u65b9\u6cd5\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u76f8\u5173\u63a5\u53e3\u7684\u5b9e\u73b0\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u7531\u7f51\u53cb",(0,n.kt)("a",{parentName:"li",href:"https://gitee.com/dotnetchina/TouchSocket/pulls/11"},"\u4fee\u6539GetInfo"))),(0,n.kt)("p",null,"\u4fee\u590d"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Container\u83b7\u53d6\u6cdb\u578b\u5931\u8d25bug\u3002"),(0,n.kt)("li",{parentName:"ol"},"BetweenAnd\u9002\u914d\u5668\u9002\u914d\u5668\u90e8\u5206bug\u3002"),(0,n.kt)("li",{parentName:"ol"},"Router\u6807\u7b7e\u65e0\u6cd5\u8def\u7531\u7684bug\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u4fee\u590dTouchRpc\u63a8\u9001\u6587\u4ef6\u72b6\u6001\u4e0d\u6b63\u786ebug"),(0,n.kt)("li",{parentName:"ol"},"\u4fee\u590d\u72ec\u7acb\u7ebf\u7a0b\u5728\u65ad\u7ebf\u91cd\u8fde\u540e\u53d1\u9001bug\u3002")),(0,n.kt)("p",null,"\u5220\u9664"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u5197\u4f59\u7684\u53d1\u9001\u65b9\u6cd5\uff0c\u4e0d\u5f71\u54cd\u4e0a\u7248\u672c\u4efb\u4f55\u4f7f\u7528\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-024"},"\u7248\u672c\u53f7: 0.2.4"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.7.28\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u517c\u5bb9\u6027\u66f4\u65b0\u3002\n\u66f4\u65b0\u8be6\u60c5\uff1a"),(0,n.kt)("p",null,"\u4f18\u5316 "),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u4f18\u5316IOC\u5bb9\u5668\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u4f18\u5316Metadata\u7684\u5199\u5165\u65b9\u5f0f\u3002"),(0,n.kt)("li",{parentName:"ol"},"FileLogger\uff0c\u5f53\u65e5\u5fd7\u6587\u4ef6\u8fbe\u52301Mb\u65f6\uff0c\u4f1a\u518d\u65b0\u589e\u6587\u4ef6\u5e8f\u53f7\u3002")),(0,n.kt)("p",null,"\u65b0\u589e"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"Mapper\u7c7b\uff0c\u652f\u6301\u7b80\u5355\u7c7b\u578b\u6620\u5c04"),(0,n.kt)("li",{parentName:"ol"},"Tcp\u670d\u52a1\u5668\u3001\u5ba2\u6237\u7aef\u3001udp\u7b49\u589e\u52a0\u7aef\u53e3\u590d\u7528\u914d\u7f6e\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u3010\u4f01\u4e1a\u7248\u3011\u8f6e\u8be2\u5f0f\u65ad\u7ebf\u91cd\u8fde\u3002"),(0,n.kt)("li",{parentName:"ol"},"\u3010\u4f01\u4e1a\u7248\u3011NATService\u8f6c\u53d1\u5ba2\u6237\u7aef\u91cd\u8fde\u3002")),(0,n.kt)("p",null,"\u4fee\u6539"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"RRQM\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316\uff0c\u6539\u540d\u4e3aFast\u3002"),(0,n.kt)("li",{parentName:"ol"},"TouchRpcClient\u8fde\u63a5\u65f6\u7684Metadata\uff0c\u6539\u4e3a\u7531Config\u914d\u7f6e\u6ce8\u5165\u3002"),(0,n.kt)("li",{parentName:"ol"},"FilePool\uff0c\u53d6\u6d88\u5ef6\u8fdf\u91ca\u653e\u673a\u5236\u3002")),(0,n.kt)("p",null,"\u4fee\u590d"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u4fee\u590dWebSocket\u8fde\u63a5\u95ee\u9898")),(0,n.kt)("p",null,"\u5220\u9664"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},"\u5ba2\u6237\u7aef\u76f4\u63a5\u8c03\u7528\u7684\u77ed\u7ebf\u91cd\u8fde\u65b9\u5f0f\u3002\u4ec5\u4fdd\u7559\u5728Config\u6ce8\u5165\u7684\u529f\u80fd\u3002")),(0,n.kt)("hr",null),(0,n.kt)("h2",{id:"\u7248\u672c\u53f7-010"},"\u7248\u672c\u53f7: 0.1.0"),(0,n.kt)("p",null,"\u66f4\u65b0\u65e5\u671f\uff1a2022.7.16\n\u66f4\u65b0\u63cf\u8ff0\uff1a\u521d\u59cb\u5316\u7248\u672c\u53d1\u5e03\u3002\u7531RRQMSocket\u8fc1\u79fb\u800c\u6765\u3002"),(0,n.kt)("p",null,"\u8fc1\u79fb\u6307\u5357\uff1a"),(0,n.kt)("h3",{id:"1\u6240\u6709\u7c7b\u7684\u547d\u540d\u7a7a\u95f4\u4fee\u6539\u6b64\u5904\u5982\u679c\u7c7b\u578b\u540d\u672a\u4fee\u6539\u7684\u8bdd\u53ef\u7531vs\u667a\u80fd\u63d0\u793a\u89e3\u51b3"},"1.\u6240\u6709\u7c7b\u7684\u547d\u540d\u7a7a\u95f4\u4fee\u6539\uff0c\u6b64\u5904\u5982\u679c\u7c7b\u578b\u540d\u672a\u4fee\u6539\u7684\u8bdd\uff0c\u53ef\u7531vs\u667a\u80fd\u63d0\u793a\u89e3\u51b3\u3002"),(0,n.kt)("h3",{id:"2\u7c7b\u578b\u540d\u79f0\u4fee\u6539"},"2.\u7c7b\u578b\u540d\u79f0\u4fee\u6539"),(0,n.kt)("table",null,(0,n.kt)("thead",{parentName:"table"},(0,n.kt)("tr",{parentName:"thead"},(0,n.kt)("th",{parentName:"tr",align:null},"\u539f\u7c7b\u578b\u540d\u79f0"),(0,n.kt)("th",{parentName:"tr",align:null},"\u65b0\u7c7b\u578b\u540d\u79f0"))),(0,n.kt)("tbody",{parentName:"table"},(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"RRQMBitConverter"),(0,n.kt)("td",{parentName:"tr",align:null},"TouchSocketBitConverter")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"RRQMConfig"),(0,n.kt)("td",{parentName:"tr",align:null},"TouchSocketConfig")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"RRQMConverter"),(0,n.kt)("td",{parentName:"tr",align:null},"TouchSocketConverter")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"RRQMDependencyObject"),(0,n.kt)("td",{parentName:"tr",align:null},"DependencyObject")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"MsgEventArgs"),(0,n.kt)("td",{parentName:"tr",align:null},"MsgEventArgs")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"RRQMEventAgrs"),(0,n.kt)("td",{parentName:"tr",align:null},"TouchSocketEventArgs")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"IServerProvider"),(0,n.kt)("td",{parentName:"tr",align:null},"IRpcServer")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"ServerProvider"),(0,n.kt)("td",{parentName:"tr",align:null},"RpcServer")),(0,n.kt)("tr",{parentName:"tbody"},(0,n.kt)("td",{parentName:"tr",align:null},"RRQMOverlengthException"),(0,n.kt)("td",{parentName:"tr",align:null},"OverlengthException")))),(0,n.kt)("h3",{id:"3\u4f7f\u7528\u903b\u8f91\u4fee\u6539"},"3.\u4f7f\u7528\u903b\u8f91\u4fee\u6539"),(0,n.kt)("p",null,"1\uff09\u539fRRQMConfig\u8bbe\u7f6eLogger\u7684\u65b9\u6cd5\uff0c\u6539\u4e3a\u5bb9\u5668\u6ce8\u5165\uff1a\n",(0,n.kt)("img",{alt:"image.png",src:l(6168).Z,width:"1500",height:"277"}),"\n\u65ad\u7ebf\u91cd\u8fde\u903b\u8f91\n",(0,n.kt)("img",{alt:"image.png",src:l(9251).Z,width:"1409",height:"815"}),"\nRpcStore\u4f7f\u7528\u53d8\u66f4\n\u5982\u679c\u662f\u4ec5\u6709\u4e00\u4e2aRpc\u89e3\u6790\u5668\uff0c\u90a3\u4e48\u53ef\u4ee5\u76f4\u63a5\u5220\u9664RpcStore\u7684\u58f0\u660e\uff0c\u4ece\u800c\u4f7f\u7528\u5bf9\u5e94\u7684",(0,n.kt)("strong",{parentName:"p"},"\u89e3\u6790\u5668\u5b9e\u4f8b"),"\uff0c\u76f4\u63a5\u6ce8\u518c\u670d\u52a1\u3002\u7136\u540e\u53ef\u4ee5\u901a\u8fc7\u5176\u5c5e\u6027RpcStore\uff0c\u83b7\u53d6\u5230\u5177\u4f53\u7684RpcStore\u5b9e\u4f8b\u3002"),(0,n.kt)("p",null,"\u5982\u679c\u662f\u6709\u591a\u4e2a\u89e3\u6790\u5668\uff0c\u90a3\u4e48\uff0c\u9996\u5148\u53ef\u4ee5\u4f7f\u7528\u4efb\u610f\u4e00\u4e2a\u89e3\u6790\u5668\u7684RpcStore\u5c5e\u6027\u5b9e\u4f8b\uff0c\u4f5c\u4e3a\u4e3bRpcStore\uff0c\u7136\u540e\u6dfb\u52a0\u5176\u4ed6\u89e3\u6790\u5668\u3002\u5f53\u7136\u4e5f\u53ef\u4ee5\u76f4\u63a5new RpcStore\uff0c\u7136\u540e\u7edf\u4e00\u7ba1\u7406\u89e3\u6790\u5668\u3002\u5176\u4e2d\u6784\u9020\u51fd\u6570\u4e2d\u7684Container\u5bb9\u5668\uff0c\u53ef\u4ee5\u76f4\u63a5new Container()\uff0c\u4f46\u662f\u66f4\u5efa\u8bae\u4f7f\u7528\u548c\u89e3\u6790\u5668\u76f8\u540c\u7684\u5bb9\u5668\uff0c\u8fd9\u6837\u6ce8\u5165\u7684\u670d\u52a1\u4f1a\u53d8\u5f97\u5168\u5c40\u53ef\u7528\u3002"))}m.isMDXComponent=!0},9722:(e,t,l)=>{l.d(t,{Z:()=>a});const a=l.p+"assets/images/upgrade-1-6b82b0abeb6cf5bcaf6aca07f67ad2aa.png"},9004:(e,t,l)=>{l.d(t,{Z:()=>a});const a=l.p+"assets/images/upgrade-2-e69c2951e8df8d2c064b1990fb4ca3ba.png"},8031:(e,t,l)=>{l.d(t,{Z:()=>a});const a=l.p+"assets/images/upgrade-3-69fbf6d003e3a06604cf5aaf4689fe9e.png"},8967:(e,t,l)=>{l.d(t,{Z:()=>a});const a=l.p+"assets/images/upgrade-4-2d7db90014741755af54830e9ffc187d.png"},6168:(e,t,l)=>{l.d(t,{Z:()=>a});const a=l.p+"assets/images/upgrade-5-fe66cc273eb92e8ceed0135da45a3a1c.png"},9251:(e,t,l)=>{l.d(t,{Z:()=>a});const a=l.p+"assets/images/upgrade-6-4e52667e8ec250b8e2c5a9acf63eaaf2.png"}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/4ecf139e.4e0b24c0.js b/handbook/build/assets/js/4ecf139e.ad0579f0.js similarity index 96% rename from handbook/build/assets/js/4ecf139e.4e0b24c0.js rename to handbook/build/assets/js/4ecf139e.ad0579f0.js index 7526d2d7de80d3d3206d8bb383aea345f1a13d35..f28a47467309b17310fbb552ec6069cf067b8a55 100644 --- a/handbook/build/assets/js/4ecf139e.4e0b24c0.js +++ b/handbook/build/assets/js/4ecf139e.ad0579f0.js @@ -1 +1 @@ -"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=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=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{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([[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=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=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{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 diff --git a/handbook/build/assets/js/6d23fcc4.904f728c.js b/handbook/build/assets/js/6d23fcc4.904f728c.js deleted file mode 100644 index fab84d768b6b6ace5bc24b97c44c4acab50c0bf4..0000000000000000000000000000000000000000 --- a/handbook/build/assets/js/6d23fcc4.904f728c.js +++ /dev/null @@ -1 +0,0 @@ -"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 diff --git a/handbook/build/assets/js/763782ab.a112b8e5.js b/handbook/build/assets/js/763782ab.95f809bd.js similarity index 95% rename from handbook/build/assets/js/763782ab.a112b8e5.js rename to handbook/build/assets/js/763782ab.95f809bd.js index 92375db82b0a6ed5bc1f3f145021cb6d4bf730c5..f847c35694f64b8ae562a64a1e79670cd453723e 100644 --- a/handbook/build/assets/js/763782ab.a112b8e5.js +++ b/handbook/build/assets/js/763782ab.95f809bd.js @@ -1 +1 @@ -"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=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o=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{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([[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=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(o=0;o=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{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 diff --git a/handbook/build/assets/js/8443.0183610a.js b/handbook/build/assets/js/8443.0060be2a.js similarity index 99% rename from handbook/build/assets/js/8443.0183610a.js rename to handbook/build/assets/js/8443.0060be2a.js index 085a882dd043853ff6d2dfa3a132a65471f810bf..46e057bdb47574be4ad074343dea8143b34eb7d2 100644 --- a/handbook/build/assets/js/8443.0183610a.js +++ b/handbook/build/assets/js/8443.0060be2a.js @@ -1,2 +1,2 @@ -/*! For license information please see 8443.0183610a.js.LICENSE.txt */ -(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[8443],{8443:(t,e,n)=>{"use strict";t.exports=n(295)},1228:(t,e,n)=>{"use strict";var i=n(2856),s={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:"0"},defaultClasses:{root:"algolia-autocomplete",prefix:"aa",noPrefix:!1,dropdownMenu:"dropdown-menu",input:"input",hint:"hint",suggestions:"suggestions",suggestion:"suggestion",cursor:"cursor",dataset:"dataset",empty:"empty"},appendTo:{wrapper:{position:"absolute",zIndex:"100",display:"none"},input:{},inputWithNoHint:{},dropdown:{display:"block"}}};i.isMsie()&&i.mixin(s.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),i.isMsie()&&i.isMsie()<=7&&i.mixin(s.input,{marginTop:"-1px"}),t.exports=s},9050:(t,e,n)=>{"use strict";var i="aaDataset",s="aaValue",r="aaDatum",o=n(2856),a=n(4910),u=n(3561),c=n(1228),l=n(3109);function h(t){var e;(t=t||{}).templates=t.templates||{},t.source||o.error("missing source"),t.name&&(e=t.name,!/^[_a-zA-Z0-9-]+$/.test(e))&&o.error("invalid dataset name: "+t.name),this.query=null,this._isEmpty=!0,this.highlight=!!t.highlight,this.name=void 0===t.name||null===t.name?o.getUniqueId():t.name,this.source=t.source,this.displayFn=function(t){return t=t||"value",o.isFunction(t)?t:e;function e(e){return e[t]}}(t.display||t.displayKey),this.debounce=t.debounce,this.cache=!1!==t.cache,this.templates=function(t,e){return{empty:t.empty&&o.templatify(t.empty),header:t.header&&o.templatify(t.header),footer:t.footer&&o.templatify(t.footer),suggestion:t.suggestion||n};function n(t){return"

"+e(t)+"

"}}(t.templates,this.displayFn),this.css=o.mixin({},c,t.appendTo?c.appendTo:{}),this.cssClasses=t.cssClasses=o.mixin({},c.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||o.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix);var n=o.className(this.cssClasses.prefix,this.cssClasses.dataset);this.$el=t.$menu&&t.$menu.find(n+"-"+this.name).length>0?a.element(t.$menu.find(n+"-"+this.name)[0]):a.element(u.dataset.replace("%CLASS%",this.name).replace("%PREFIX%",this.cssClasses.prefix).replace("%DATASET%",this.cssClasses.dataset)),this.$menu=t.$menu,this.clearCachedSuggestions()}h.extractDatasetName=function(t){return a.element(t).data(i)},h.extractValue=function(t){return a.element(t).data(s)},h.extractDatum=function(t){var e=a.element(t).data(r);return"string"==typeof e&&(e=JSON.parse(e)),e},o.mixin(h.prototype,l,{_render:function(t,e){if(this.$el){var n,c=this,l=[].slice.call(arguments,2);if(this.$el.empty(),n=e&&e.length,this._isEmpty=!n,!n&&this.templates.empty)this.$el.html(h.apply(this,l)).prepend(c.templates.header?f.apply(this,l):null).append(c.templates.footer?d.apply(this,l):null);else if(n)this.$el.html(p.apply(this,l)).prepend(c.templates.header?f.apply(this,l):null).append(c.templates.footer?d.apply(this,l):null);else if(e&&!Array.isArray(e))throw new TypeError("suggestions must be an array");this.$menu&&this.$menu.addClass(this.cssClasses.prefix+(n?"with":"without")+"-"+this.name).removeClass(this.cssClasses.prefix+(n?"without":"with")+"-"+this.name),this.trigger("rendered",t)}function h(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!0}].concat(e),c.templates.empty.apply(this,e)}function p(){var t,n,l=[].slice.call(arguments,0),h=this,p=u.suggestions.replace("%PREFIX%",this.cssClasses.prefix).replace("%SUGGESTIONS%",this.cssClasses.suggestions);return t=a.element(p).css(this.css.suggestions),n=o.map(e,f),t.append.apply(t,n),t;function f(t){var e,n=u.suggestion.replace("%PREFIX%",h.cssClasses.prefix).replace("%SUGGESTION%",h.cssClasses.suggestion);return(e=a.element(n).attr({role:"option",id:["option",Math.floor(1e8*Math.random())].join("-")}).append(c.templates.suggestion.apply(this,[t].concat(l)))).data(i,c.name),e.data(s,c.displayFn(t)||void 0),e.data(r,JSON.stringify(t)),e.children().each((function(){a.element(this).css(h.css.suggestionChild)})),e}}function f(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),c.templates.header.apply(this,e)}function d(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),c.templates.footer.apply(this,e)}},getRoot:function(){return this.$el},update:function(t){function e(e){if(!this.canceled&&t===this.query){var n=[].slice.call(arguments,1);this.cacheSuggestions(t,e,n),this._render.apply(this,[t,e].concat(n))}}if(this.query=t,this.canceled=!1,this.shouldFetchFromCache(t))e.apply(this,[this.cachedSuggestions].concat(this.cachedRenderExtraArgs));else{var n=this,i=function(){n.canceled||n.source(t,e.bind(n))};if(this.debounce){clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout((function(){n.debounceTimeout=null,i()}),this.debounce)}else i()}},cacheSuggestions:function(t,e,n){this.cachedQuery=t,this.cachedSuggestions=e,this.cachedRenderExtraArgs=n},shouldFetchFromCache:function(t){return this.cache&&this.cachedQuery===t&&this.cachedSuggestions&&this.cachedSuggestions.length},clearCachedSuggestions:function(){delete this.cachedQuery,delete this.cachedSuggestions,delete this.cachedRenderExtraArgs},cancel:function(){this.canceled=!0},clear:function(){this.$el&&(this.cancel(),this.$el.empty(),this.trigger("rendered",""))},isEmpty:function(){return this._isEmpty},destroy:function(){this.clearCachedSuggestions(),this.$el=null}}),t.exports=h},3354:(t,e,n)=>{"use strict";var i=n(2856),s=n(4910),r=n(3109),o=n(9050),a=n(1228);function u(t){var e,n,r,o=this;(t=t||{}).menu||i.error("menu is required"),i.isArray(t.datasets)||i.isObject(t.datasets)||i.error("1 or more datasets required"),t.datasets||i.error("datasets is required"),this.isOpen=!1,this.isEmpty=!0,this.minLength=t.minLength||0,this.templates={},this.appendTo=t.appendTo||!1,this.css=i.mixin({},a,t.appendTo?a.appendTo:{}),this.cssClasses=t.cssClasses=i.mixin({},a.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||i.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),e=i.bind(this._onSuggestionClick,this),n=i.bind(this._onSuggestionMouseEnter,this),r=i.bind(this._onSuggestionMouseLeave,this);var c=i.className(this.cssClasses.prefix,this.cssClasses.suggestion);this.$menu=s.element(t.menu).on("mouseenter.aa",c,n).on("mouseleave.aa",c,r).on("click.aa",c,e),this.$container=t.appendTo?t.wrapper:this.$menu,t.templates&&t.templates.header&&(this.templates.header=i.templatify(t.templates.header),this.$menu.prepend(this.templates.header())),t.templates&&t.templates.empty&&(this.templates.empty=i.templatify(t.templates.empty),this.$empty=s.element('
'),this.$menu.append(this.$empty),this.$empty.hide()),this.datasets=i.map(t.datasets,(function(e){return function(t,e,n){return new u.Dataset(i.mixin({$menu:t,cssClasses:n},e))}(o.$menu,e,t.cssClasses)})),i.each(this.datasets,(function(t){var e=t.getRoot();e&&0===e.parent().length&&o.$menu.append(e),t.onSync("rendered",o._onRendered,o)})),t.templates&&t.templates.footer&&(this.templates.footer=i.templatify(t.templates.footer),this.$menu.append(this.templates.footer()));var l=this;s.element(window).resize((function(){l._redraw()}))}i.mixin(u.prototype,r,{_onSuggestionClick:function(t){this.trigger("suggestionClicked",s.element(t.currentTarget))},_onSuggestionMouseEnter:function(t){var e=s.element(t.currentTarget);if(!e.hasClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0))){this._removeCursor();var n=this;setTimeout((function(){n._setCursor(e,!1)}),0)}},_onSuggestionMouseLeave:function(t){if(t.relatedTarget&&s.element(t.relatedTarget).closest("."+i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).length>0)return;this._removeCursor(),this.trigger("cursorRemoved")},_onRendered:function(t,e){if(this.isEmpty=i.every(this.datasets,(function(t){return t.isEmpty()})),this.isEmpty)if(e.length>=this.minLength&&this.trigger("empty"),this.$empty)if(e.length=this.minLength?this._show():this._hide());this.trigger("datasetRendered")},_hide:function(){this.$container.hide()},_show:function(){this.$container.css("display","block"),this._redraw(),this.trigger("shown")},_redraw:function(){this.isOpen&&this.appendTo&&this.trigger("redrawn")},_getSuggestions:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.suggestion))},_getCursor:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.cursor)).first()},_setCursor:function(t,e){t.first().addClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).attr("aria-selected","true"),this.trigger("cursorMoved",e)},_removeCursor:function(){this._getCursor().removeClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).removeAttr("aria-selected")},_moveCursor:function(t){var e,n,i,s;this.isOpen&&(n=this._getCursor(),e=this._getSuggestions(),this._removeCursor(),-1!==(i=((i=e.index(n)+t)+1)%(e.length+1)-1)?(i<-1&&(i=e.length-1),this._setCursor(s=e.eq(i),!0),this._ensureVisible(s)):this.trigger("cursorRemoved"))},_ensureVisible:function(t){var e,n,i,s;n=(e=t.position().top)+t.height()+parseInt(t.css("margin-top"),10)+parseInt(t.css("margin-bottom"),10),i=this.$menu.scrollTop(),s=this.$menu.height()+parseInt(this.$menu.css("padding-top"),10)+parseInt(this.$menu.css("padding-bottom"),10),e<0?this.$menu.scrollTop(i+e):s{"use strict";var i=n(2856),s=n(4910);function r(t){t&&t.el||i.error("EventBus initialized without el"),this.$el=s.element(t.el)}i.mixin(r.prototype,{trigger:function(t,e,n,s){var r=i.Event("autocomplete:"+t);return this.$el.trigger(r,[e,n,s]),r}}),t.exports=r},3109:(t,e,n)=>{"use strict";var i=n(624),s=/\s+/;function r(t,e,n,i){var r;if(!n)return this;for(e=e.split(s),n=i?function(t,e){return t.bind?t.bind(e):function(){t.apply(e,[].slice.call(arguments,0))}}(n,i):n,this._callbacks=this._callbacks||{};r=e.shift();)this._callbacks[r]=this._callbacks[r]||{sync:[],async:[]},this._callbacks[r][t].push(n);return this}function o(t,e,n){return function(){for(var i,s=0,r=t.length;!i&&s{"use strict";t.exports={wrapper:'',dropdown:'',dataset:'
',suggestions:'',suggestion:'
'}},2534:(t,e,n)=>{"use strict";var i;i={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var s=n(2856),r=n(4910),o=n(3109);function a(t){var e,n,o,a,u,c=this;(t=t||{}).input||s.error("input is missing"),e=s.bind(this._onBlur,this),n=s.bind(this._onFocus,this),o=s.bind(this._onKeydown,this),a=s.bind(this._onInput,this),this.$hint=r.element(t.hint),this.$input=r.element(t.input).on("blur.aa",e).on("focus.aa",n).on("keydown.aa",o),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=s.noop),s.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",(function(t){i[t.which||t.keyCode]||s.defer(s.bind(c._onInput,c,t))})):this.$input.on("input.aa",a),this.query=this.$input.val(),this.$overflowHelper=(u=this.$input,r.element('').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:u.css("font-family"),fontSize:u.css("font-size"),fontStyle:u.css("font-style"),fontVariant:u.css("font-variant"),fontWeight:u.css("font-weight"),wordSpacing:u.css("word-spacing"),letterSpacing:u.css("letter-spacing"),textIndent:u.css("text-indent"),textRendering:u.css("text-rendering"),textTransform:u.css("text-transform")}).insertAfter(u))}function u(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}a.normalizeQuery=function(t){return(t||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},s.mixin(a.prototype,o,{_onBlur:function(){this.resetInputValue(),this.$input.removeAttr("aria-activedescendant"),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(t){var e=i[t.which||t.keyCode];this._managePreventDefault(e,t),e&&this._shouldTrigger(e,t)&&this.trigger(e+"Keyed",t)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(t,e){var n,i,s;switch(t){case"tab":i=this.getHint(),s=this.getInputValue(),n=i&&i!==s&&!u(e);break;case"up":case"down":n=!u(e);break;default:n=!1}n&&e.preventDefault()},_shouldTrigger:function(t,e){var n;if("tab"===t)n=!u(e);else n=!0;return n},_checkInputValue:function(){var t,e,n,i,s;t=this.getInputValue(),i=t,s=this.query,n=!(!(e=a.normalizeQuery(i)===a.normalizeQuery(s))||!this.query)&&this.query.length!==t.length,this.query=t,e?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(t){this.query=t},getInputValue:function(){return this.$input.val()},setInputValue:function(t,e){void 0===t&&(t=this.query),this.$input.val(t),e?this.clearHint():this._checkInputValue()},expand:function(){this.$input.attr("aria-expanded","true")},collapse:function(){this.$input.attr("aria-expanded","false")},setActiveDescendant:function(t){this.$input.attr("aria-activedescendant",t)},removeActiveDescendant:function(){this.$input.removeAttr("aria-activedescendant")},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(t){this.$hint.val(t)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var t,e,n;n=(t=this.getInputValue())!==(e=this.getHint())&&0===e.indexOf(t),""!==t&&n&&!this.hasOverflow()||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var t=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=t},isCursorAtEnd:function(){var t,e,n;return t=this.$input.val().length,e=this.$input[0].selectionStart,s.isNumber(e)?e===t:!document.selection||((n=document.selection.createRange()).moveStart("character",-t),t===n.text.length)},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),t.exports=a},6549:(t,e,n)=>{"use strict";var i="aaAttrs",s=n(2856),r=n(4910),o=n(50),a=n(2534),u=n(3354),c=n(3561),l=n(1228);function h(t){var e,n;if((t=t||{}).input||s.error("missing input"),this.isActivated=!1,this.debug=!!t.debug,this.autoselect=!!t.autoselect,this.autoselectOnBlur=!!t.autoselectOnBlur,this.openOnFocus=!!t.openOnFocus,this.minLength=s.isNumber(t.minLength)?t.minLength:1,this.autoWidth=void 0===t.autoWidth||!!t.autoWidth,this.clearOnSelected=!!t.clearOnSelected,this.tabAutocomplete=void 0===t.tabAutocomplete||!!t.tabAutocomplete,t.hint=!!t.hint,t.hint&&t.appendTo)throw new Error("[autocomplete.js] hint and appendTo options can't be used at the same time");this.css=t.css=s.mixin({},l,t.appendTo?l.appendTo:{}),this.cssClasses=t.cssClasses=s.mixin({},l.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix=s.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),this.listboxId=t.listboxId=[this.cssClasses.root,"listbox",s.getUniqueId()].join("-");var a=function(t){var e,n,o,a;e=r.element(t.input),n=r.element(c.wrapper.replace("%ROOT%",t.cssClasses.root)).css(t.css.wrapper),t.appendTo||"block"!==e.css("display")||"table"!==e.parent().css("display")||n.css("display","table-cell");var u=c.dropdown.replace("%PREFIX%",t.cssClasses.prefix).replace("%DROPDOWN_MENU%",t.cssClasses.dropdownMenu);o=r.element(u).css(t.css.dropdown).attr({role:"listbox",id:t.listboxId}),t.templates&&t.templates.dropdownMenu&&o.html(s.templatify(t.templates.dropdownMenu)());(a=e.clone().css(t.css.hint).css(function(t){return{backgroundAttachment:t.css("background-attachment"),backgroundClip:t.css("background-clip"),backgroundColor:t.css("background-color"),backgroundImage:t.css("background-image"),backgroundOrigin:t.css("background-origin"),backgroundPosition:t.css("background-position"),backgroundRepeat:t.css("background-repeat"),backgroundSize:t.css("background-size")}}(e))).val("").addClass(s.className(t.cssClasses.prefix,t.cssClasses.hint,!0)).removeAttr("id name placeholder required").prop("readonly",!0).attr({"aria-hidden":"true",autocomplete:"off",spellcheck:"false",tabindex:-1}),a.removeData&&a.removeData();e.data(i,{"aria-autocomplete":e.attr("aria-autocomplete"),"aria-expanded":e.attr("aria-expanded"),"aria-owns":e.attr("aria-owns"),autocomplete:e.attr("autocomplete"),dir:e.attr("dir"),role:e.attr("role"),spellcheck:e.attr("spellcheck"),style:e.attr("style"),type:e.attr("type")}),e.addClass(s.className(t.cssClasses.prefix,t.cssClasses.input,!0)).attr({autocomplete:"off",spellcheck:!1,role:"combobox","aria-autocomplete":t.datasets&&t.datasets[0]&&t.datasets[0].displayKey?"both":"list","aria-expanded":"false","aria-label":t.ariaLabel,"aria-owns":t.listboxId}).css(t.hint?t.css.input:t.css.inputWithNoHint);try{e.attr("dir")||e.attr("dir","auto")}catch(l){}return(n=t.appendTo?n.appendTo(r.element(t.appendTo).eq(0)).eq(0):e.wrap(n).parent()).prepend(t.hint?a:null).append(o),{wrapper:n,input:e,hint:a,menu:o}}(t);this.$node=a.wrapper;var u=this.$input=a.input;e=a.menu,n=a.hint,t.dropdownMenuContainer&&r.element(t.dropdownMenuContainer).css("position","relative").append(e.css("top","0")),u.on("blur.aa",(function(t){var n=document.activeElement;s.isMsie()&&(e[0]===n||e[0].contains(n))&&(t.preventDefault(),t.stopImmediatePropagation(),s.defer((function(){u.focus()})))})),e.on("mousedown.aa",(function(t){t.preventDefault()})),this.eventBus=t.eventBus||new o({el:u}),this.dropdown=new h.Dropdown({appendTo:t.appendTo,wrapper:this.$node,menu:e,datasets:t.datasets,templates:t.templates,cssClasses:t.cssClasses,minLength:this.minLength}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onSync("shown",this._onShown,this).onSync("empty",this._onEmpty,this).onSync("redrawn",this._onRedrawn,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new h.Input({input:u,hint:n}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._bindKeyboardShortcuts(t),this._setLanguageDirection()}s.mixin(h.prototype,{_bindKeyboardShortcuts:function(t){if(t.keyboardShortcuts){var e=this.$input,n=[];s.each(t.keyboardShortcuts,(function(t){"string"==typeof t&&(t=t.toUpperCase().charCodeAt(0)),n.push(t)})),r.element(document).keydown((function(t){var i=t.target||t.srcElement,s=i.tagName;if(!i.isContentEditable&&"INPUT"!==s&&"SELECT"!==s&&"TEXTAREA"!==s){var r=t.which||t.keyCode;-1!==n.indexOf(r)&&(e.focus(),t.stopPropagation(),t.preventDefault())}}))}},_onSuggestionClicked:function(t,e){var n;(n=this.dropdown.getDatumForSuggestion(e))&&this._select(n,{selectionMethod:"click"})},_onCursorMoved:function(t,e){var n=this.dropdown.getDatumForCursor(),i=this.dropdown.getCurrentCursor().attr("id");this.input.setActiveDescendant(i),n&&(e&&this.input.setInputValue(n.value,!0),this.eventBus.trigger("cursorchanged",n.raw,n.datasetName))},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint(),this.eventBus.trigger("cursorremoved")},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.input.expand(),this.eventBus.trigger("opened")},_onEmpty:function(){this.eventBus.trigger("empty")},_onRedrawn:function(){this.$node.css("top","0px"),this.$node.css("left","0px");var t=this.$input[0].getBoundingClientRect();this.autoWidth&&this.$node.css("width",t.width+"px");var e=this.$node[0].getBoundingClientRect(),n=t.bottom-e.top;this.$node.css("top",n+"px");var i=t.left-e.left;this.$node.css("left",i+"px"),this.eventBus.trigger("redrawn")},_onShown:function(){this.eventBus.trigger("shown"),this.autoselect&&this.dropdown.cursorTopSuggestion()},_onClosed:function(){this.input.clearHint(),this.input.removeActiveDescendant(),this.input.collapse(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var t=this.input.getQuery();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){var t,e;t=this.dropdown.getDatumForCursor(),e=this.dropdown.getDatumForTopSuggestion();var n={selectionMethod:"blur"};this.debug||(this.autoselectOnBlur&&t?this._select(t,n):this.autoselectOnBlur&&e?this._select(e,n):(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()))},_onEnterKeyed:function(t,e){var n,i;n=this.dropdown.getDatumForCursor(),i=this.dropdown.getDatumForTopSuggestion();var s={selectionMethod:"enterKey"};n?(this._select(n,s),e.preventDefault()):this.autoselect&&i&&(this._select(i,s),e.preventDefault())},_onTabKeyed:function(t,e){if(this.tabAutocomplete){var n;(n=this.dropdown.getDatumForCursor())?(this._select(n,{selectionMethod:"tabKey"}),e.preventDefault()):this._autocomplete(!0)}else this.dropdown.close()},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(t,e){this.input.clearHintIfInvalid(),e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var t=this.input.getLanguageDirection();this.dir!==t&&(this.dir=t,this.$node.css("direction",t),this.dropdown.setLanguageDirection(t))},_updateHint:function(){var t,e,n,i,r;(t=this.dropdown.getDatumForTopSuggestion())&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(e=this.input.getInputValue(),n=a.normalizeQuery(e),i=s.escapeRegExChars(n),(r=new RegExp("^(?:"+i+")(.+$)","i").exec(t.value))?this.input.setHint(e+r[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(t){var e,n,i,s;e=this.input.getHint(),n=this.input.getQuery(),i=t||this.input.isCursorAtEnd(),e&&n!==e&&i&&((s=this.dropdown.getDatumForTopSuggestion())&&this.input.setInputValue(s.value),this.eventBus.trigger("autocompleted",s.raw,s.datasetName))},_select:function(t,e){void 0!==t.value&&this.input.setQuery(t.value),this.clearOnSelected?this.setVal(""):this.input.setInputValue(t.value,!0),this._setLanguageDirection(),!1===this.eventBus.trigger("selected",t.raw,t.datasetName,e).isDefaultPrevented()&&(this.dropdown.close(),s.defer(s.bind(this.dropdown.empty,this.dropdown)))},open:function(){if(!this.isActivated){var t=this.input.getInputValue();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(t){t=s.toStr(t),this.isActivated?this.input.setInputValue(t):(this.input.setQuery(t),this.input.setInputValue(t,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),function(t,e){var n=t.find(s.className(e.prefix,e.input));s.each(n.data(i),(function(t,e){void 0===t?n.removeAttr(e):n.attr(e,t)})),n.detach().removeClass(s.className(e.prefix,e.input,!0)).insertAfter(t),n.removeData&&n.removeData(i);t.remove()}(this.$node,this.cssClasses),this.$node=null},getWrapper:function(){return this.dropdown.$container[0]}}),h.Dropdown=u,h.Input=a,h.sources=n(8840),t.exports=h},4910:t=>{"use strict";t.exports={element:null}},6177:t=>{"use strict";t.exports=function(t){var e=t.match(/Algolia for JavaScript \((\d+\.)(\d+\.)(\d+)\)/)||t.match(/Algolia for vanilla JavaScript (\d+\.)(\d+\.)(\d+)/);if(e)return[e[1],e[2],e[3]]}},2856:(t,e,n)=>{"use strict";var i,s=n(8820),r=n(4910);function o(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}t.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(t){if(void 0===t&&(t=navigator.userAgent),/(msie|trident)/i.test(t)){var e=t.match(/(msie |rv:)(\d+(.\d+)?)/i);if(e)return e[2]}return!1},escapeRegExChars:function(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isNumber:function(t){return"number"==typeof t},toStr:function(t){return null==t?"":t+""},cloneDeep:function(t){var e=this.mixin({},t),n=this;return this.each(e,(function(t,i){t&&(n.isArray(t)?e[i]=[].concat(t):n.isObject(t)&&(e[i]=n.cloneDeep(t)))})),e},error:function(t){throw new Error(t)},every:function(t,e){var n=!0;return t?(this.each(t,(function(i,s){n&&(n=e.call(null,i,s,t)&&n)})),!!n):n},any:function(t,e){var n=!1;return t?(this.each(t,(function(i,s){if(e.call(null,i,s,t))return n=!0,!1})),n):n},getUniqueId:(i=0,function(){return i++}),templatify:function(t){if(this.isFunction(t))return t;var e=r.element(t);return"SCRIPT"===e.prop("tagName")?function(){return e.text()}:function(){return String(t)}},defer:function(t){setTimeout(t,0)},noop:function(){},formatPrefix:function(t,e){return e?"":t+"-"},className:function(t,e,n){return n?t+e:"."+s(t+e,{isIdentifier:!0})},escapeHighlightedString:function(t,e,n){e=e||"";var i=document.createElement("div");i.appendChild(document.createTextNode(e)),n=n||"";var s=document.createElement("div");s.appendChild(document.createTextNode(n));var r=document.createElement("div");return r.appendChild(document.createTextNode(t)),r.innerHTML.replace(RegExp(o(i.innerHTML),"g"),e).replace(RegExp(o(s.innerHTML),"g"),n)}}},9983:(t,e,n)=>{"use strict";var i=n(2856),s=n(533),r=n(6177);var o,a,u=(o=[],a=window.Promise.resolve(),function(t,e){return function(n,s){(function(t,e){return window.Promise.resolve().then((function(){return o.length&&(a=t.search(o),o=[]),a})).then((function(t){if(t)return t.results[e]}))})(t.as,o.push({indexName:t.indexName,query:n,params:e})-1).then((function(t){t&&s(t.hits,t)})).catch((function(t){i.error(t.message)}))}});t.exports=function(t,e){var n=r(t.as._ua);if(n&&n[0]>=3&&n[1]>20){var i="autocomplete.js "+s;-1===t.as._ua.indexOf(i)&&(t.as._ua+="; "+i)}return u(t,e)}},8840:(t,e,n)=>{"use strict";t.exports={hits:n(9983),popularIn:n(4445)}},4445:(t,e,n)=>{"use strict";var i=n(2856),s=n(533),r=n(6177);t.exports=function(t,e,n,o){var a=r(t.as._ua);if(a&&a[0]>=3&&a[1]>20&&((e=e||{}).additionalUA="autocomplete.js "+s),!n.source)return i.error("Missing 'source' key");var u=i.isFunction(n.source)?n.source:function(t){return t[n.source]};if(!n.index)return i.error("Missing 'index' key");var c=n.index;return o=o||{},function(a,l){t.search(a,e,(function(t,a){if(t)i.error(t.message);else{if(a.hits.length>0){var h=a.hits[0],p=i.mixin({hitsPerPage:0},n);delete p.source,delete p.index;var f=r(c.as._ua);return f&&f[0]>=3&&f[1]>20&&(e.additionalUA="autocomplete.js "+s),void c.search(u(h),p,(function(t,e){if(t)i.error(t.message);else{var n=[];if(o.includeAll){var s=o.allTitle||"All departments";n.push(i.mixin({facet:{value:s,count:e.nbHits}},i.cloneDeep(h)))}i.each(e.facets,(function(t,e){i.each(t,(function(t,s){n.push(i.mixin({facet:{facet:e,value:s,count:t}},i.cloneDeep(h)))}))}));for(var r=1;r{"use strict";var i=n(6990);n(4910).element=i;var s=n(2856);s.isArray=i.isArray,s.isFunction=i.isFunction,s.isObject=i.isPlainObject,s.bind=i.proxy,s.each=function(t,e){i.each(t,(function(t,n){return e(n,t)}))},s.map=i.map,s.mixin=i.extend,s.Event=i.Event;var r="aaAutocomplete",o=n(6549),a=n(50);function u(t,e,n,u){n=s.isArray(n)?n:[].slice.call(arguments,2);var c=i(t).each((function(t,s){var c=i(s),l=new a({el:c}),h=u||new o({input:c,eventBus:l,dropdownMenuContainer:e.dropdownMenuContainer,hint:void 0===e.hint||!!e.hint,minLength:e.minLength,autoselect:e.autoselect,autoselectOnBlur:e.autoselectOnBlur,tabAutocomplete:e.tabAutocomplete,openOnFocus:e.openOnFocus,templates:e.templates,debug:e.debug,clearOnSelected:e.clearOnSelected,cssClasses:e.cssClasses,datasets:n,keyboardShortcuts:e.keyboardShortcuts,appendTo:e.appendTo,autoWidth:e.autoWidth,ariaLabel:e.ariaLabel||s.getAttribute("aria-label")});c.data(r,h)}));return c.autocomplete={},s.each(["open","close","getVal","setVal","destroy","getWrapper"],(function(t){c.autocomplete[t]=function(){var e,n=arguments;return c.each((function(s,o){var a=i(o).data(r);e=a[t].apply(a,n)})),e}})),c}u.sources=o.sources,u.escapeHighlightedString=s.escapeHighlightedString;var c="autocomplete"in window,l=window.autocomplete;u.noConflict=function(){return c?window.autocomplete=l:delete window.autocomplete,u},t.exports=u},533:t=>{t.exports="0.38.1"},6990:t=>{var e;e=window,t.exports=function(t){var e,n,i=function(){var e,n,i,s,r,o,a=[],u=a.concat,c=a.filter,l=a.slice,h=t.document,p={},f={},d={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},g=/^\s*<(\w+|!)[^>]*>/,m=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,y=/^(?:body|html)$/i,w=/([A-Z])/g,b=["val","css","html","text","data","width","height","offset"],C=["after","prepend","before","append"],x=h.createElement("table"),_=h.createElement("tr"),S={tr:h.createElement("tbody"),tbody:x,thead:x,tfoot:x,td:_,th:_,"*":h.createElement("div")},E=/complete|loaded|interactive/,A=/^[\w-]*$/,$={},T=$.toString,O={},D=h.createElement("div"),N={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},k=Array.isArray||function(t){return t instanceof Array};function I(t){return null==t?String(t):$[T.call(t)]||"object"}function P(t){return"function"==I(t)}function L(t){return null!=t&&t==t.window}function M(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function F(t){return"object"==I(t)}function R(t){return F(t)&&!L(t)&&Object.getPrototypeOf(t)==Object.prototype}function q(t){var e=!!t&&"length"in t&&t.length,n=i.type(t);return"function"!=n&&!L(t)&&("array"==n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function V(t){return c.call(t,(function(t){return null!=t}))}function H(t){return t.length>0?i.fn.concat.apply([],t):t}function B(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function K(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function j(t,e){return"number"!=typeof e||d[B(t)]?e:e+"px"}function z(t){var e,n;return p[t]||(e=h.createElement(t),h.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),p[t]=n),p[t]}function U(t){return"children"in t?l.call(t.children):i.map(t.childNodes,(function(t){if(1==t.nodeType)return t}))}function Q(t,e){var n,i=t?t.length:0;for(n=0;n")),n===e&&(n=g.test(t)&&RegExp.$1),n in S||(n="*"),(a=S[n]).innerHTML=""+t,r=i.each(l.call(a.childNodes),(function(){a.removeChild(this)}))),R(s)&&(o=i(r),i.each(s,(function(t,e){b.indexOf(t)>-1?o[t](e):o.attr(t,e)}))),r},O.Z=function(t,e){return new Q(t,e)},O.isZ=function(t){return t instanceof O.Z},O.init=function(t,n){var s;if(!t)return O.Z();if("string"==typeof t)if("<"==(t=t.trim())[0]&&g.test(t))s=O.fragment(t,RegExp.$1,n),t=null;else{if(n!==e)return i(n).find(t);s=O.qsa(h,t)}else{if(P(t))return i(h).ready(t);if(O.isZ(t))return t;if(k(t))s=V(t);else if(F(t))s=[t],t=null;else if(g.test(t))s=O.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==e)return i(n).find(t);s=O.qsa(h,t)}}return O.Z(s,t)},(i=function(t,e){return O.init(t,e)}).extend=function(t){var e,n=l.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach((function(n){W(t,n,e)})),t},O.qsa=function(t,e){var n,i="#"==e[0],s=!i&&"."==e[0],r=i||s?e.slice(1):e,o=A.test(r);return t.getElementById&&o&&i?(n=t.getElementById(r))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:l.call(o&&!i&&t.getElementsByClassName?s?t.getElementsByClassName(r):t.getElementsByTagName(e):t.querySelectorAll(e))},i.contains=h.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},i.type=I,i.isFunction=P,i.isWindow=L,i.isArray=k,i.isPlainObject=R,i.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},i.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},i.inArray=function(t,e,n){return a.indexOf.call(e,t,n)},i.camelCase=r,i.trim=function(t){return null==t?"":String.prototype.trim.call(t)},i.uuid=0,i.support={},i.expr={},i.noop=function(){},i.map=function(t,e){var n,i,s,r=[];if(q(t))for(i=0;i=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each((function(){null!=this.parentNode&&this.parentNode.removeChild(this)}))},each:function(t){return a.every.call(this,(function(e,n){return!1!==t.call(e,n,e)})),this},filter:function(t){return P(t)?this.not(this.not(t)):i(c.call(this,(function(e){return O.matches(e,t)})))},add:function(t,e){return i(o(this.concat(i(t,e))))},is:function(t){return this.length>0&&O.matches(this[0],t)},not:function(t){var n=[];if(P(t)&&t.call!==e)this.each((function(e){t.call(this,e)||n.push(this)}));else{var s="string"==typeof t?this.filter(t):q(t)&&P(t.item)?l.call(t):i(t);this.forEach((function(t){s.indexOf(t)<0&&n.push(t)}))}return i(n)},has:function(t){return this.filter((function(){return F(t)?i.contains(this,t):i(this).find(t).size()}))},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!F(t)?t:i(t)},last:function(){var t=this[this.length-1];return t&&!F(t)?t:i(t)},find:function(t){var e=this;return t?"object"==typeof t?i(t).filter((function(){var t=this;return a.some.call(e,(function(e){return i.contains(e,t)}))})):1==this.length?i(O.qsa(this[0],t)):this.map((function(){return O.qsa(this,t)})):i()},closest:function(t,e){var n=[],s="object"==typeof t&&i(t);return this.each((function(i,r){for(;r&&!(s?s.indexOf(r)>=0:O.matches(r,t));)r=r!==e&&!M(r)&&r.parentNode;r&&n.indexOf(r)<0&&n.push(r)})),i(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=i.map(n,(function(t){if((t=t.parentNode)&&!M(t)&&e.indexOf(t)<0)return e.push(t),t}));return Z(e,t)},parent:function(t){return Z(o(this.pluck("parentNode")),t)},children:function(t){return Z(this.map((function(){return U(this)})),t)},contents:function(){return this.map((function(){return this.contentDocument||l.call(this.childNodes)}))},siblings:function(t){return Z(this.map((function(t,e){return c.call(U(e.parentNode),(function(t){return t!==e}))})),t)},empty:function(){return this.each((function(){this.innerHTML=""}))},pluck:function(t){return i.map(this,(function(e){return e[t]}))},show:function(){return this.each((function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=z(this.nodeName))}))},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=P(t);if(this[0]&&!e)var n=i(t).get(0),s=n.parentNode||this.length>1;return this.each((function(r){i(this).wrapAll(e?t.call(this,r):s?n.cloneNode(!0):n)}))},wrapAll:function(t){if(this[0]){var e;for(i(this[0]).before(t=i(t));(e=t.children()).length;)t=e.first();i(t).append(this)}return this},wrapInner:function(t){var e=P(t);return this.each((function(n){var s=i(this),r=s.contents(),o=e?t.call(this,n):t;r.length?r.wrapAll(o):s.append(o)}))},unwrap:function(){return this.parent().each((function(){i(this).replaceWith(i(this).children())})),this},clone:function(){return this.map((function(){return this.cloneNode(!0)}))},hide:function(){return this.css("display","none")},toggle:function(t){return this.each((function(){var n=i(this);(t===e?"none"==n.css("display"):t)?n.show():n.hide()}))},prev:function(t){return i(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return i(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each((function(e){var n=this.innerHTML;i(this).empty().append(X(this,t,e,n))})):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each((function(e){var n=X(this,t,e,this.textContent);this.textContent=null==n?"":""+n})):0 in this?this.pluck("textContent").join(""):null},attr:function(t,i){var s;return"string"!=typeof t||1 in arguments?this.each((function(e){if(1===this.nodeType)if(F(t))for(n in t)G(this,n,t[n]);else G(this,t,X(this,i,e,this.getAttribute(t)))})):0 in this&&1==this[0].nodeType&&null!=(s=this[0].getAttribute(t))?s:e},removeAttr:function(t){return this.each((function(){1===this.nodeType&&t.split(" ").forEach((function(t){G(this,t)}),this)}))},prop:function(t,e){return t=N[t]||t,1 in arguments?this.each((function(n){this[t]=X(this,e,n,this[t])})):this[0]&&this[0][t]},removeProp:function(t){return t=N[t]||t,this.each((function(){delete this[t]}))},data:function(t,n){var i="data-"+t.replace(w,"-$1").toLowerCase(),s=1 in arguments?this.attr(i,n):this.attr(i);return null!==s?Y(s):e},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each((function(e){this.value=X(this,t,e,this.value)}))):this[0]&&(this[0].multiple?i(this[0]).find("option").filter((function(){return this.selected})).pluck("value"):this[0].value)},offset:function(e){if(e)return this.each((function(t){var n=i(this),s=X(this,e,t,n.offset()),r=n.offsetParent().offset(),o={top:s.top-r.top,left:s.left-r.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)}));if(!this.length)return null;if(h.documentElement!==this[0]&&!i.contains(h.documentElement,this[0]))return{top:0,left:0};var n=this[0].getBoundingClientRect();return{left:n.left+t.pageXOffset,top:n.top+t.pageYOffset,width:Math.round(n.width),height:Math.round(n.height)}},css:function(t,e){if(arguments.length<2){var s=this[0];if("string"==typeof t){if(!s)return;return s.style[r(t)]||getComputedStyle(s,"").getPropertyValue(t)}if(k(t)){if(!s)return;var o={},a=getComputedStyle(s,"");return i.each(t,(function(t,e){o[e]=s.style[r(e)]||a.getPropertyValue(e)})),o}}var u="";if("string"==I(t))e||0===e?u=B(t)+":"+j(t,e):this.each((function(){this.style.removeProperty(B(t))}));else for(n in t)t[n]||0===t[n]?u+=B(n)+":"+j(n,t[n])+";":this.each((function(){this.style.removeProperty(B(n))}));return this.each((function(){this.style.cssText+=";"+u}))},index:function(t){return t?this.indexOf(i(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&a.some.call(this,(function(t){return this.test(J(t))}),K(t))},addClass:function(t){return t?this.each((function(e){if("className"in this){s=[];var n=J(this);X(this,t,e,n).split(/\s+/g).forEach((function(t){i(this).hasClass(t)||s.push(t)}),this),s.length&&J(this,n+(n?" ":"")+s.join(" "))}})):this},removeClass:function(t){return this.each((function(n){if("className"in this){if(t===e)return J(this,"");s=J(this),X(this,t,n,s).split(/\s+/g).forEach((function(t){s=s.replace(K(t)," ")})),J(this,s.trim())}}))},toggleClass:function(t,n){return t?this.each((function(s){var r=i(this);X(this,t,s,J(this)).split(/\s+/g).forEach((function(t){(n===e?!r.hasClass(t):n)?r.addClass(t):r.removeClass(t)}))})):this},scrollTop:function(t){if(this.length){var n="scrollTop"in this[0];return t===e?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var n="scrollLeft"in this[0];return t===e?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),s=y.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(i(t).css("margin-top"))||0,n.left-=parseFloat(i(t).css("margin-left"))||0,s.top+=parseFloat(i(e[0]).css("border-top-width"))||0,s.left+=parseFloat(i(e[0]).css("border-left-width"))||0,{top:n.top-s.top,left:n.left-s.left}}},offsetParent:function(){return this.map((function(){for(var t=this.offsetParent||h.body;t&&!y.test(t.nodeName)&&"static"==i(t).css("position");)t=t.offsetParent;return t}))}},i.fn.detach=i.fn.remove,["width","height"].forEach((function(t){var n=t.replace(/./,(function(t){return t[0].toUpperCase()}));i.fn[t]=function(s){var r,o=this[0];return s===e?L(o)?o["inner"+n]:M(o)?o.documentElement["scroll"+n]:(r=this.offset())&&r[t]:this.each((function(e){(o=i(this)).css(t,X(this,s,e,o[t]()))}))}})),C.forEach((function(n,s){var r=s%2;i.fn[n]=function(){var n,o,a=i.map(arguments,(function(t){var s=[];return"array"==(n=I(t))?(t.forEach((function(t){return t.nodeType!==e?s.push(t):i.zepto.isZ(t)?s=s.concat(t.get()):void(s=s.concat(O.fragment(t)))})),s):"object"==n||null==t?t:O.fragment(t)})),u=this.length>1;return a.length<1?this:this.each((function(e,n){o=r?n:n.parentNode,n=0==s?n.nextSibling:1==s?n.firstChild:2==s?n:null;var c=i.contains(h.documentElement,o);a.forEach((function(e){if(u)e=e.cloneNode(!0);else if(!o)return i(e).remove();o.insertBefore(e,n),c&&tt(e,(function(e){if(!(null==e.nodeName||"SCRIPT"!==e.nodeName.toUpperCase()||e.type&&"text/javascript"!==e.type||e.src)){var n=e.ownerDocument?e.ownerDocument.defaultView:t;n.eval.call(n,e.innerHTML)}}))}))}))},i.fn[r?n+"To":"insert"+(s?"Before":"After")]=function(t){return i(t)[n](this),this}})),O.Z.prototype=Q.prototype=i.fn,O.uniq=o,O.deserializeValue=Y,i.zepto=O,i}();return function(e){var n,i=1,s=Array.prototype.slice,r=e.isFunction,o=function(t){return"string"==typeof t},a={},u={},c="onfocusin"in t,l={focus:"focusin",blur:"focusout"},h={mouseenter:"mouseover",mouseleave:"mouseout"};function p(t){return t._zid||(t._zid=i++)}function f(t,e,n,i){if((e=d(e)).ns)var s=g(e.ns);return(a[p(t)]||[]).filter((function(t){return t&&(!e.e||t.e==e.e)&&(!e.ns||s.test(t.ns))&&(!n||p(t.fn)===p(n))&&(!i||t.sel==i)}))}function d(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function g(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function m(t,e){return t.del&&!c&&t.e in l||!!e}function v(t){return h[t]||c&&l[t]||t}function y(t,i,s,r,o,u,c){var l=p(t),f=a[l]||(a[l]=[]);i.split(/\s/).forEach((function(i){if("ready"==i)return e(document).ready(s);var a=d(i);a.fn=s,a.sel=o,a.e in h&&(s=function(t){var n=t.relatedTarget;if(!n||n!==this&&!e.contains(this,n))return a.fn.apply(this,arguments)}),a.del=u;var l=u||s;a.proxy=function(e){if(!(e=S(e)).isImmediatePropagationStopped()){try{var i=Object.getOwnPropertyDescriptor(e,"data");i&&!i.writable||(e.data=r)}catch(e){}var s=l.apply(t,e._args==n?[e]:[e].concat(e._args));return!1===s&&(e.preventDefault(),e.stopPropagation()),s}},a.i=f.length,f.push(a),"addEventListener"in t&&t.addEventListener(v(a.e),a.proxy,m(a,c))}))}function w(t,e,n,i,s){var r=p(t);(e||"").split(/\s/).forEach((function(e){f(t,e,n,i).forEach((function(e){delete a[r][e.i],"removeEventListener"in t&&t.removeEventListener(v(e.e),e.proxy,m(e,s))}))}))}u.click=u.mousedown=u.mouseup=u.mousemove="MouseEvents",e.event={add:y,remove:w},e.proxy=function(t,n){var i=2 in arguments&&s.call(arguments,2);if(r(t)){var a=function(){return t.apply(n,i?i.concat(s.call(arguments)):arguments)};return a._zid=p(t),a}if(o(n))return i?(i.unshift(t[n],t),e.proxy.apply(null,i)):e.proxy(t[n],t);throw new TypeError("expected function")},e.fn.bind=function(t,e,n){return this.on(t,e,n)},e.fn.unbind=function(t,e){return this.off(t,e)},e.fn.one=function(t,e,n,i){return this.on(t,e,n,i,1)};var b=function(){return!0},C=function(){return!1},x=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,_={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};function S(t,i){if(i||!t.isDefaultPrevented){i||(i=t),e.each(_,(function(e,n){var s=i[e];t[e]=function(){return this[n]=b,s&&s.apply(i,arguments)},t[n]=C}));try{t.timeStamp||(t.timeStamp=Date.now())}catch(s){}(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?!1===i.returnValue:i.getPreventDefault&&i.getPreventDefault())&&(t.isDefaultPrevented=b)}return t}function E(t){var e,i={originalEvent:t};for(e in t)x.test(e)||t[e]===n||(i[e]=t[e]);return S(i,t)}e.fn.delegate=function(t,e,n){return this.on(e,t,n)},e.fn.undelegate=function(t,e,n){return this.off(e,t,n)},e.fn.live=function(t,n){return e(document.body).delegate(this.selector,t,n),this},e.fn.die=function(t,n){return e(document.body).undelegate(this.selector,t,n),this},e.fn.on=function(t,i,a,u,c){var l,h,p=this;return t&&!o(t)?(e.each(t,(function(t,e){p.on(t,i,a,e,c)})),p):(o(i)||r(u)||!1===u||(u=a,a=i,i=n),u!==n&&!1!==a||(u=a,a=n),!1===u&&(u=C),p.each((function(n,r){c&&(l=function(t){return w(r,t.type,u),u.apply(this,arguments)}),i&&(h=function(t){var n,o=e(t.target).closest(i,r).get(0);if(o&&o!==r)return n=e.extend(E(t),{currentTarget:o,liveFired:r}),(l||u).apply(o,[n].concat(s.call(arguments,1)))}),y(r,t,u,a,i,h||l)})))},e.fn.off=function(t,i,s){var a=this;return t&&!o(t)?(e.each(t,(function(t,e){a.off(t,i,e)})),a):(o(i)||r(s)||!1===s||(s=i,i=n),!1===s&&(s=C),a.each((function(){w(this,t,s,i)})))},e.fn.trigger=function(t,n){return(t=o(t)||e.isPlainObject(t)?e.Event(t):S(t))._args=n,this.each((function(){t.type in l&&"function"==typeof this[t.type]?this[t.type]():"dispatchEvent"in this?this.dispatchEvent(t):e(this).triggerHandler(t,n)}))},e.fn.triggerHandler=function(t,n){var i,s;return this.each((function(r,a){(i=E(o(t)?e.Event(t):t))._args=n,i.target=a,e.each(f(a,t.type||t),(function(t,e){if(s=e.proxy(i),i.isImmediatePropagationStopped())return!1}))})),s},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach((function(t){e.fn[t]=function(e){return 0 in arguments?this.bind(t,e):this.trigger(t)}})),e.Event=function(t,e){o(t)||(t=(e=t).type);var n=document.createEvent(u[t]||"Events"),i=!0;if(e)for(var s in e)"bubbles"==s?i=!!e[s]:n[s]=e[s];return n.initEvent(t,i,!0),S(n)}}(i),n=[],i.fn.remove=function(){return this.each((function(){this.parentNode&&("IMG"===this.tagName&&(n.push(this),this.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",e&&clearTimeout(e),e=setTimeout((function(){n=[]}),6e4)),this.parentNode.removeChild(this))}))},function(t){var e={},n=t.fn.data,i=t.camelCase,s=t.expando="Zepto"+ +new Date,r=[];function o(r,o){var u=r[s],c=u&&e[u];if(void 0===o)return c||a(r);if(c){if(o in c)return c[o];var l=i(o);if(l in c)return c[l]}return n.call(t(r),o)}function a(n,r,o){var a=n[s]||(n[s]=++t.uuid),c=e[a]||(e[a]=u(n));return void 0!==r&&(c[i(r)]=o),c}function u(e){var n={};return t.each(e.attributes||r,(function(e,s){0==s.name.indexOf("data-")&&(n[i(s.name.replace("data-",""))]=t.zepto.deserializeValue(s.value))})),n}t.fn.data=function(e,n){return void 0===n?t.isPlainObject(e)?this.each((function(n,i){t.each(e,(function(t,e){a(i,t,e)}))})):0 in this?o(this[0],e):void 0:this.each((function(){a(this,e,n)}))},t.data=function(e,n,i){return t(e).data(n,i)},t.hasData=function(n){var i=n[s],r=i&&e[i];return!!r&&!t.isEmptyObject(r)},t.fn.removeData=function(n){return"string"==typeof n&&(n=n.split(/\s+/)),this.each((function(){var r=this[s],o=r&&e[r];o&&t.each(n||o,(function(t){delete o[n?i(this):t]}))}))},["remove","empty"].forEach((function(e){var n=t.fn[e];t.fn[e]=function(){var t=this.find("*");return"remove"===e&&(t=t.add(this)),t.removeData(),n.call(this)}}))}(i),i}(e)},8820:t=>{"use strict";var e={}.hasOwnProperty,n=/[ -,\.\/:-@\[-\^`\{-~]/,i=/[ -,\.\/:-@\[\]\^`\{-~]/,s=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,r=function t(r,o){"single"!=(o=function(t,n){if(!t)return n;var i={};for(var s in n)i[s]=e.call(t,s)?t[s]:n[s];return i}(o,t.options)).quotes&&"double"!=o.quotes&&(o.quotes="single");for(var a="double"==o.quotes?'"':"'",u=o.isIdentifier,c=r.charAt(0),l="",h=0,p=r.length;h126){if(d>=55296&&d<=56319&&h{"use strict";var i,s,r,o=[n(5525),n(4785),n(8291),n(2709),n(2506),n(9176)],a=-1,u=[],c=!1;function l(){i&&s&&(i=!1,s.length?u=s.concat(u):a=-1,u.length&&h())}function h(){if(!i){c=!1,i=!0;for(var t=u.length,e=setTimeout(l);t;){for(s=u,u=[];s&&++a1)for(var n=1;n{"use strict";e.test=function(){return!n.g.setImmediate&&void 0!==n.g.MessageChannel},e.install=function(t){var e=new n.g.MessageChannel;return e.port1.onmessage=t,function(){e.port2.postMessage(0)}}},8291:(t,e,n)=>{"use strict";var i=n.g.MutationObserver||n.g.WebKitMutationObserver;e.test=function(){return i},e.install=function(t){var e=0,s=new i(t),r=n.g.document.createTextNode("");return s.observe(r,{characterData:!0}),function(){r.data=e=++e%2}}},4785:(t,e,n)=>{"use strict";e.test=function(){return"function"==typeof n.g.queueMicrotask},e.install=function(t){return function(){n.g.queueMicrotask(t)}}},2506:(t,e,n)=>{"use strict";e.test=function(){return"document"in n.g&&"onreadystatechange"in n.g.document.createElement("script")},e.install=function(t){return function(){var e=n.g.document.createElement("script");return e.onreadystatechange=function(){t(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},n.g.document.documentElement.appendChild(e),t}}},9176:(t,e)=>{"use strict";e.test=function(){return!0},e.install=function(t){return function(){setTimeout(t,0)}}}}]); \ No newline at end of file +/*! For license information please see 8443.0060be2a.js.LICENSE.txt */ +(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[8443],{8443:(t,e,n)=>{"use strict";t.exports=n(295)},1228:(t,e,n)=>{"use strict";var i=n(2856),s={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:"0"},defaultClasses:{root:"algolia-autocomplete",prefix:"aa",noPrefix:!1,dropdownMenu:"dropdown-menu",input:"input",hint:"hint",suggestions:"suggestions",suggestion:"suggestion",cursor:"cursor",dataset:"dataset",empty:"empty"},appendTo:{wrapper:{position:"absolute",zIndex:"100",display:"none"},input:{},inputWithNoHint:{},dropdown:{display:"block"}}};i.isMsie()&&i.mixin(s.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),i.isMsie()&&i.isMsie()<=7&&i.mixin(s.input,{marginTop:"-1px"}),t.exports=s},9050:(t,e,n)=>{"use strict";var i="aaDataset",s="aaValue",r="aaDatum",o=n(2856),a=n(4910),u=n(3561),c=n(1228),l=n(3109);function h(t){var e;(t=t||{}).templates=t.templates||{},t.source||o.error("missing source"),t.name&&(e=t.name,!/^[_a-zA-Z0-9-]+$/.test(e))&&o.error("invalid dataset name: "+t.name),this.query=null,this._isEmpty=!0,this.highlight=!!t.highlight,this.name=void 0===t.name||null===t.name?o.getUniqueId():t.name,this.source=t.source,this.displayFn=function(t){return t=t||"value",o.isFunction(t)?t:e;function e(e){return e[t]}}(t.display||t.displayKey),this.debounce=t.debounce,this.cache=!1!==t.cache,this.templates=function(t,e){return{empty:t.empty&&o.templatify(t.empty),header:t.header&&o.templatify(t.header),footer:t.footer&&o.templatify(t.footer),suggestion:t.suggestion||n};function n(t){return"

"+e(t)+"

"}}(t.templates,this.displayFn),this.css=o.mixin({},c,t.appendTo?c.appendTo:{}),this.cssClasses=t.cssClasses=o.mixin({},c.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||o.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix);var n=o.className(this.cssClasses.prefix,this.cssClasses.dataset);this.$el=t.$menu&&t.$menu.find(n+"-"+this.name).length>0?a.element(t.$menu.find(n+"-"+this.name)[0]):a.element(u.dataset.replace("%CLASS%",this.name).replace("%PREFIX%",this.cssClasses.prefix).replace("%DATASET%",this.cssClasses.dataset)),this.$menu=t.$menu,this.clearCachedSuggestions()}h.extractDatasetName=function(t){return a.element(t).data(i)},h.extractValue=function(t){return a.element(t).data(s)},h.extractDatum=function(t){var e=a.element(t).data(r);return"string"==typeof e&&(e=JSON.parse(e)),e},o.mixin(h.prototype,l,{_render:function(t,e){if(this.$el){var n,c=this,l=[].slice.call(arguments,2);if(this.$el.empty(),n=e&&e.length,this._isEmpty=!n,!n&&this.templates.empty)this.$el.html(h.apply(this,l)).prepend(c.templates.header?f.apply(this,l):null).append(c.templates.footer?d.apply(this,l):null);else if(n)this.$el.html(p.apply(this,l)).prepend(c.templates.header?f.apply(this,l):null).append(c.templates.footer?d.apply(this,l):null);else if(e&&!Array.isArray(e))throw new TypeError("suggestions must be an array");this.$menu&&this.$menu.addClass(this.cssClasses.prefix+(n?"with":"without")+"-"+this.name).removeClass(this.cssClasses.prefix+(n?"without":"with")+"-"+this.name),this.trigger("rendered",t)}function h(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!0}].concat(e),c.templates.empty.apply(this,e)}function p(){var t,n,l=[].slice.call(arguments,0),h=this,p=u.suggestions.replace("%PREFIX%",this.cssClasses.prefix).replace("%SUGGESTIONS%",this.cssClasses.suggestions);return t=a.element(p).css(this.css.suggestions),n=o.map(e,f),t.append.apply(t,n),t;function f(t){var e,n=u.suggestion.replace("%PREFIX%",h.cssClasses.prefix).replace("%SUGGESTION%",h.cssClasses.suggestion);return(e=a.element(n).attr({role:"option",id:["option",Math.floor(1e8*Math.random())].join("-")}).append(c.templates.suggestion.apply(this,[t].concat(l)))).data(i,c.name),e.data(s,c.displayFn(t)||void 0),e.data(r,JSON.stringify(t)),e.children().each((function(){a.element(this).css(h.css.suggestionChild)})),e}}function f(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),c.templates.header.apply(this,e)}function d(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),c.templates.footer.apply(this,e)}},getRoot:function(){return this.$el},update:function(t){function e(e){if(!this.canceled&&t===this.query){var n=[].slice.call(arguments,1);this.cacheSuggestions(t,e,n),this._render.apply(this,[t,e].concat(n))}}if(this.query=t,this.canceled=!1,this.shouldFetchFromCache(t))e.apply(this,[this.cachedSuggestions].concat(this.cachedRenderExtraArgs));else{var n=this,i=function(){n.canceled||n.source(t,e.bind(n))};if(this.debounce){clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout((function(){n.debounceTimeout=null,i()}),this.debounce)}else i()}},cacheSuggestions:function(t,e,n){this.cachedQuery=t,this.cachedSuggestions=e,this.cachedRenderExtraArgs=n},shouldFetchFromCache:function(t){return this.cache&&this.cachedQuery===t&&this.cachedSuggestions&&this.cachedSuggestions.length},clearCachedSuggestions:function(){delete this.cachedQuery,delete this.cachedSuggestions,delete this.cachedRenderExtraArgs},cancel:function(){this.canceled=!0},clear:function(){this.$el&&(this.cancel(),this.$el.empty(),this.trigger("rendered",""))},isEmpty:function(){return this._isEmpty},destroy:function(){this.clearCachedSuggestions(),this.$el=null}}),t.exports=h},3354:(t,e,n)=>{"use strict";var i=n(2856),s=n(4910),r=n(3109),o=n(9050),a=n(1228);function u(t){var e,n,r,o=this;(t=t||{}).menu||i.error("menu is required"),i.isArray(t.datasets)||i.isObject(t.datasets)||i.error("1 or more datasets required"),t.datasets||i.error("datasets is required"),this.isOpen=!1,this.isEmpty=!0,this.minLength=t.minLength||0,this.templates={},this.appendTo=t.appendTo||!1,this.css=i.mixin({},a,t.appendTo?a.appendTo:{}),this.cssClasses=t.cssClasses=i.mixin({},a.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||i.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),e=i.bind(this._onSuggestionClick,this),n=i.bind(this._onSuggestionMouseEnter,this),r=i.bind(this._onSuggestionMouseLeave,this);var c=i.className(this.cssClasses.prefix,this.cssClasses.suggestion);this.$menu=s.element(t.menu).on("mouseenter.aa",c,n).on("mouseleave.aa",c,r).on("click.aa",c,e),this.$container=t.appendTo?t.wrapper:this.$menu,t.templates&&t.templates.header&&(this.templates.header=i.templatify(t.templates.header),this.$menu.prepend(this.templates.header())),t.templates&&t.templates.empty&&(this.templates.empty=i.templatify(t.templates.empty),this.$empty=s.element('
'),this.$menu.append(this.$empty),this.$empty.hide()),this.datasets=i.map(t.datasets,(function(e){return function(t,e,n){return new u.Dataset(i.mixin({$menu:t,cssClasses:n},e))}(o.$menu,e,t.cssClasses)})),i.each(this.datasets,(function(t){var e=t.getRoot();e&&0===e.parent().length&&o.$menu.append(e),t.onSync("rendered",o._onRendered,o)})),t.templates&&t.templates.footer&&(this.templates.footer=i.templatify(t.templates.footer),this.$menu.append(this.templates.footer()));var l=this;s.element(window).resize((function(){l._redraw()}))}i.mixin(u.prototype,r,{_onSuggestionClick:function(t){this.trigger("suggestionClicked",s.element(t.currentTarget))},_onSuggestionMouseEnter:function(t){var e=s.element(t.currentTarget);if(!e.hasClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0))){this._removeCursor();var n=this;setTimeout((function(){n._setCursor(e,!1)}),0)}},_onSuggestionMouseLeave:function(t){if(t.relatedTarget&&s.element(t.relatedTarget).closest("."+i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).length>0)return;this._removeCursor(),this.trigger("cursorRemoved")},_onRendered:function(t,e){if(this.isEmpty=i.every(this.datasets,(function(t){return t.isEmpty()})),this.isEmpty)if(e.length>=this.minLength&&this.trigger("empty"),this.$empty)if(e.length=this.minLength?this._show():this._hide());this.trigger("datasetRendered")},_hide:function(){this.$container.hide()},_show:function(){this.$container.css("display","block"),this._redraw(),this.trigger("shown")},_redraw:function(){this.isOpen&&this.appendTo&&this.trigger("redrawn")},_getSuggestions:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.suggestion))},_getCursor:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.cursor)).first()},_setCursor:function(t,e){t.first().addClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).attr("aria-selected","true"),this.trigger("cursorMoved",e)},_removeCursor:function(){this._getCursor().removeClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).removeAttr("aria-selected")},_moveCursor:function(t){var e,n,i,s;this.isOpen&&(n=this._getCursor(),e=this._getSuggestions(),this._removeCursor(),-1!==(i=((i=e.index(n)+t)+1)%(e.length+1)-1)?(i<-1&&(i=e.length-1),this._setCursor(s=e.eq(i),!0),this._ensureVisible(s)):this.trigger("cursorRemoved"))},_ensureVisible:function(t){var e,n,i,s;n=(e=t.position().top)+t.height()+parseInt(t.css("margin-top"),10)+parseInt(t.css("margin-bottom"),10),i=this.$menu.scrollTop(),s=this.$menu.height()+parseInt(this.$menu.css("padding-top"),10)+parseInt(this.$menu.css("padding-bottom"),10),e<0?this.$menu.scrollTop(i+e):s{"use strict";var i=n(2856),s=n(4910);function r(t){t&&t.el||i.error("EventBus initialized without el"),this.$el=s.element(t.el)}i.mixin(r.prototype,{trigger:function(t,e,n,s){var r=i.Event("autocomplete:"+t);return this.$el.trigger(r,[e,n,s]),r}}),t.exports=r},3109:(t,e,n)=>{"use strict";var i=n(624),s=/\s+/;function r(t,e,n,i){var r;if(!n)return this;for(e=e.split(s),n=i?function(t,e){return t.bind?t.bind(e):function(){t.apply(e,[].slice.call(arguments,0))}}(n,i):n,this._callbacks=this._callbacks||{};r=e.shift();)this._callbacks[r]=this._callbacks[r]||{sync:[],async:[]},this._callbacks[r][t].push(n);return this}function o(t,e,n){return function(){for(var i,s=0,r=t.length;!i&&s{"use strict";t.exports={wrapper:'',dropdown:'',dataset:'
',suggestions:'',suggestion:'
'}},2534:(t,e,n)=>{"use strict";var i;i={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var s=n(2856),r=n(4910),o=n(3109);function a(t){var e,n,o,a,u,c=this;(t=t||{}).input||s.error("input is missing"),e=s.bind(this._onBlur,this),n=s.bind(this._onFocus,this),o=s.bind(this._onKeydown,this),a=s.bind(this._onInput,this),this.$hint=r.element(t.hint),this.$input=r.element(t.input).on("blur.aa",e).on("focus.aa",n).on("keydown.aa",o),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=s.noop),s.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",(function(t){i[t.which||t.keyCode]||s.defer(s.bind(c._onInput,c,t))})):this.$input.on("input.aa",a),this.query=this.$input.val(),this.$overflowHelper=(u=this.$input,r.element('').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:u.css("font-family"),fontSize:u.css("font-size"),fontStyle:u.css("font-style"),fontVariant:u.css("font-variant"),fontWeight:u.css("font-weight"),wordSpacing:u.css("word-spacing"),letterSpacing:u.css("letter-spacing"),textIndent:u.css("text-indent"),textRendering:u.css("text-rendering"),textTransform:u.css("text-transform")}).insertAfter(u))}function u(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}a.normalizeQuery=function(t){return(t||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},s.mixin(a.prototype,o,{_onBlur:function(){this.resetInputValue(),this.$input.removeAttr("aria-activedescendant"),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(t){var e=i[t.which||t.keyCode];this._managePreventDefault(e,t),e&&this._shouldTrigger(e,t)&&this.trigger(e+"Keyed",t)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(t,e){var n,i,s;switch(t){case"tab":i=this.getHint(),s=this.getInputValue(),n=i&&i!==s&&!u(e);break;case"up":case"down":n=!u(e);break;default:n=!1}n&&e.preventDefault()},_shouldTrigger:function(t,e){var n;if("tab"===t)n=!u(e);else n=!0;return n},_checkInputValue:function(){var t,e,n,i,s;t=this.getInputValue(),i=t,s=this.query,n=!(!(e=a.normalizeQuery(i)===a.normalizeQuery(s))||!this.query)&&this.query.length!==t.length,this.query=t,e?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(t){this.query=t},getInputValue:function(){return this.$input.val()},setInputValue:function(t,e){void 0===t&&(t=this.query),this.$input.val(t),e?this.clearHint():this._checkInputValue()},expand:function(){this.$input.attr("aria-expanded","true")},collapse:function(){this.$input.attr("aria-expanded","false")},setActiveDescendant:function(t){this.$input.attr("aria-activedescendant",t)},removeActiveDescendant:function(){this.$input.removeAttr("aria-activedescendant")},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(t){this.$hint.val(t)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var t,e,n;n=(t=this.getInputValue())!==(e=this.getHint())&&0===e.indexOf(t),""!==t&&n&&!this.hasOverflow()||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var t=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=t},isCursorAtEnd:function(){var t,e,n;return t=this.$input.val().length,e=this.$input[0].selectionStart,s.isNumber(e)?e===t:!document.selection||((n=document.selection.createRange()).moveStart("character",-t),t===n.text.length)},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),t.exports=a},6549:(t,e,n)=>{"use strict";var i="aaAttrs",s=n(2856),r=n(4910),o=n(50),a=n(2534),u=n(3354),c=n(3561),l=n(1228);function h(t){var e,n;if((t=t||{}).input||s.error("missing input"),this.isActivated=!1,this.debug=!!t.debug,this.autoselect=!!t.autoselect,this.autoselectOnBlur=!!t.autoselectOnBlur,this.openOnFocus=!!t.openOnFocus,this.minLength=s.isNumber(t.minLength)?t.minLength:1,this.autoWidth=void 0===t.autoWidth||!!t.autoWidth,this.clearOnSelected=!!t.clearOnSelected,this.tabAutocomplete=void 0===t.tabAutocomplete||!!t.tabAutocomplete,t.hint=!!t.hint,t.hint&&t.appendTo)throw new Error("[autocomplete.js] hint and appendTo options can't be used at the same time");this.css=t.css=s.mixin({},l,t.appendTo?l.appendTo:{}),this.cssClasses=t.cssClasses=s.mixin({},l.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix=s.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),this.listboxId=t.listboxId=[this.cssClasses.root,"listbox",s.getUniqueId()].join("-");var a=function(t){var e,n,o,a;e=r.element(t.input),n=r.element(c.wrapper.replace("%ROOT%",t.cssClasses.root)).css(t.css.wrapper),t.appendTo||"block"!==e.css("display")||"table"!==e.parent().css("display")||n.css("display","table-cell");var u=c.dropdown.replace("%PREFIX%",t.cssClasses.prefix).replace("%DROPDOWN_MENU%",t.cssClasses.dropdownMenu);o=r.element(u).css(t.css.dropdown).attr({role:"listbox",id:t.listboxId}),t.templates&&t.templates.dropdownMenu&&o.html(s.templatify(t.templates.dropdownMenu)());(a=e.clone().css(t.css.hint).css(function(t){return{backgroundAttachment:t.css("background-attachment"),backgroundClip:t.css("background-clip"),backgroundColor:t.css("background-color"),backgroundImage:t.css("background-image"),backgroundOrigin:t.css("background-origin"),backgroundPosition:t.css("background-position"),backgroundRepeat:t.css("background-repeat"),backgroundSize:t.css("background-size")}}(e))).val("").addClass(s.className(t.cssClasses.prefix,t.cssClasses.hint,!0)).removeAttr("id name placeholder required").prop("readonly",!0).attr({"aria-hidden":"true",autocomplete:"off",spellcheck:"false",tabindex:-1}),a.removeData&&a.removeData();e.data(i,{"aria-autocomplete":e.attr("aria-autocomplete"),"aria-expanded":e.attr("aria-expanded"),"aria-owns":e.attr("aria-owns"),autocomplete:e.attr("autocomplete"),dir:e.attr("dir"),role:e.attr("role"),spellcheck:e.attr("spellcheck"),style:e.attr("style"),type:e.attr("type")}),e.addClass(s.className(t.cssClasses.prefix,t.cssClasses.input,!0)).attr({autocomplete:"off",spellcheck:!1,role:"combobox","aria-autocomplete":t.datasets&&t.datasets[0]&&t.datasets[0].displayKey?"both":"list","aria-expanded":"false","aria-label":t.ariaLabel,"aria-owns":t.listboxId}).css(t.hint?t.css.input:t.css.inputWithNoHint);try{e.attr("dir")||e.attr("dir","auto")}catch(l){}return(n=t.appendTo?n.appendTo(r.element(t.appendTo).eq(0)).eq(0):e.wrap(n).parent()).prepend(t.hint?a:null).append(o),{wrapper:n,input:e,hint:a,menu:o}}(t);this.$node=a.wrapper;var u=this.$input=a.input;e=a.menu,n=a.hint,t.dropdownMenuContainer&&r.element(t.dropdownMenuContainer).css("position","relative").append(e.css("top","0")),u.on("blur.aa",(function(t){var n=document.activeElement;s.isMsie()&&(e[0]===n||e[0].contains(n))&&(t.preventDefault(),t.stopImmediatePropagation(),s.defer((function(){u.focus()})))})),e.on("mousedown.aa",(function(t){t.preventDefault()})),this.eventBus=t.eventBus||new o({el:u}),this.dropdown=new h.Dropdown({appendTo:t.appendTo,wrapper:this.$node,menu:e,datasets:t.datasets,templates:t.templates,cssClasses:t.cssClasses,minLength:this.minLength}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onSync("shown",this._onShown,this).onSync("empty",this._onEmpty,this).onSync("redrawn",this._onRedrawn,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new h.Input({input:u,hint:n}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._bindKeyboardShortcuts(t),this._setLanguageDirection()}s.mixin(h.prototype,{_bindKeyboardShortcuts:function(t){if(t.keyboardShortcuts){var e=this.$input,n=[];s.each(t.keyboardShortcuts,(function(t){"string"==typeof t&&(t=t.toUpperCase().charCodeAt(0)),n.push(t)})),r.element(document).keydown((function(t){var i=t.target||t.srcElement,s=i.tagName;if(!i.isContentEditable&&"INPUT"!==s&&"SELECT"!==s&&"TEXTAREA"!==s){var r=t.which||t.keyCode;-1!==n.indexOf(r)&&(e.focus(),t.stopPropagation(),t.preventDefault())}}))}},_onSuggestionClicked:function(t,e){var n;(n=this.dropdown.getDatumForSuggestion(e))&&this._select(n,{selectionMethod:"click"})},_onCursorMoved:function(t,e){var n=this.dropdown.getDatumForCursor(),i=this.dropdown.getCurrentCursor().attr("id");this.input.setActiveDescendant(i),n&&(e&&this.input.setInputValue(n.value,!0),this.eventBus.trigger("cursorchanged",n.raw,n.datasetName))},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint(),this.eventBus.trigger("cursorremoved")},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.input.expand(),this.eventBus.trigger("opened")},_onEmpty:function(){this.eventBus.trigger("empty")},_onRedrawn:function(){this.$node.css("top","0px"),this.$node.css("left","0px");var t=this.$input[0].getBoundingClientRect();this.autoWidth&&this.$node.css("width",t.width+"px");var e=this.$node[0].getBoundingClientRect(),n=t.bottom-e.top;this.$node.css("top",n+"px");var i=t.left-e.left;this.$node.css("left",i+"px"),this.eventBus.trigger("redrawn")},_onShown:function(){this.eventBus.trigger("shown"),this.autoselect&&this.dropdown.cursorTopSuggestion()},_onClosed:function(){this.input.clearHint(),this.input.removeActiveDescendant(),this.input.collapse(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var t=this.input.getQuery();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){var t,e;t=this.dropdown.getDatumForCursor(),e=this.dropdown.getDatumForTopSuggestion();var n={selectionMethod:"blur"};this.debug||(this.autoselectOnBlur&&t?this._select(t,n):this.autoselectOnBlur&&e?this._select(e,n):(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()))},_onEnterKeyed:function(t,e){var n,i;n=this.dropdown.getDatumForCursor(),i=this.dropdown.getDatumForTopSuggestion();var s={selectionMethod:"enterKey"};n?(this._select(n,s),e.preventDefault()):this.autoselect&&i&&(this._select(i,s),e.preventDefault())},_onTabKeyed:function(t,e){if(this.tabAutocomplete){var n;(n=this.dropdown.getDatumForCursor())?(this._select(n,{selectionMethod:"tabKey"}),e.preventDefault()):this._autocomplete(!0)}else this.dropdown.close()},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(t,e){this.input.clearHintIfInvalid(),e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var t=this.input.getLanguageDirection();this.dir!==t&&(this.dir=t,this.$node.css("direction",t),this.dropdown.setLanguageDirection(t))},_updateHint:function(){var t,e,n,i,r;(t=this.dropdown.getDatumForTopSuggestion())&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(e=this.input.getInputValue(),n=a.normalizeQuery(e),i=s.escapeRegExChars(n),(r=new RegExp("^(?:"+i+")(.+$)","i").exec(t.value))?this.input.setHint(e+r[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(t){var e,n,i,s;e=this.input.getHint(),n=this.input.getQuery(),i=t||this.input.isCursorAtEnd(),e&&n!==e&&i&&((s=this.dropdown.getDatumForTopSuggestion())&&this.input.setInputValue(s.value),this.eventBus.trigger("autocompleted",s.raw,s.datasetName))},_select:function(t,e){void 0!==t.value&&this.input.setQuery(t.value),this.clearOnSelected?this.setVal(""):this.input.setInputValue(t.value,!0),this._setLanguageDirection(),!1===this.eventBus.trigger("selected",t.raw,t.datasetName,e).isDefaultPrevented()&&(this.dropdown.close(),s.defer(s.bind(this.dropdown.empty,this.dropdown)))},open:function(){if(!this.isActivated){var t=this.input.getInputValue();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(t){t=s.toStr(t),this.isActivated?this.input.setInputValue(t):(this.input.setQuery(t),this.input.setInputValue(t,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),function(t,e){var n=t.find(s.className(e.prefix,e.input));s.each(n.data(i),(function(t,e){void 0===t?n.removeAttr(e):n.attr(e,t)})),n.detach().removeClass(s.className(e.prefix,e.input,!0)).insertAfter(t),n.removeData&&n.removeData(i);t.remove()}(this.$node,this.cssClasses),this.$node=null},getWrapper:function(){return this.dropdown.$container[0]}}),h.Dropdown=u,h.Input=a,h.sources=n(3580),t.exports=h},4910:t=>{"use strict";t.exports={element:null}},6177:t=>{"use strict";t.exports=function(t){var e=t.match(/Algolia for JavaScript \((\d+\.)(\d+\.)(\d+)\)/)||t.match(/Algolia for vanilla JavaScript (\d+\.)(\d+\.)(\d+)/);if(e)return[e[1],e[2],e[3]]}},2856:(t,e,n)=>{"use strict";var i,s=n(8820),r=n(4910);function o(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}t.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(t){if(void 0===t&&(t=navigator.userAgent),/(msie|trident)/i.test(t)){var e=t.match(/(msie |rv:)(\d+(.\d+)?)/i);if(e)return e[2]}return!1},escapeRegExChars:function(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isNumber:function(t){return"number"==typeof t},toStr:function(t){return null==t?"":t+""},cloneDeep:function(t){var e=this.mixin({},t),n=this;return this.each(e,(function(t,i){t&&(n.isArray(t)?e[i]=[].concat(t):n.isObject(t)&&(e[i]=n.cloneDeep(t)))})),e},error:function(t){throw new Error(t)},every:function(t,e){var n=!0;return t?(this.each(t,(function(i,s){n&&(n=e.call(null,i,s,t)&&n)})),!!n):n},any:function(t,e){var n=!1;return t?(this.each(t,(function(i,s){if(e.call(null,i,s,t))return n=!0,!1})),n):n},getUniqueId:(i=0,function(){return i++}),templatify:function(t){if(this.isFunction(t))return t;var e=r.element(t);return"SCRIPT"===e.prop("tagName")?function(){return e.text()}:function(){return String(t)}},defer:function(t){setTimeout(t,0)},noop:function(){},formatPrefix:function(t,e){return e?"":t+"-"},className:function(t,e,n){return n?t+e:"."+s(t+e,{isIdentifier:!0})},escapeHighlightedString:function(t,e,n){e=e||"";var i=document.createElement("div");i.appendChild(document.createTextNode(e)),n=n||"";var s=document.createElement("div");s.appendChild(document.createTextNode(n));var r=document.createElement("div");return r.appendChild(document.createTextNode(t)),r.innerHTML.replace(RegExp(o(i.innerHTML),"g"),e).replace(RegExp(o(s.innerHTML),"g"),n)}}},9983:(t,e,n)=>{"use strict";var i=n(2856),s=n(533),r=n(6177);var o,a,u=(o=[],a=window.Promise.resolve(),function(t,e){return function(n,s){(function(t,e){return window.Promise.resolve().then((function(){return o.length&&(a=t.search(o),o=[]),a})).then((function(t){if(t)return t.results[e]}))})(t.as,o.push({indexName:t.indexName,query:n,params:e})-1).then((function(t){t&&s(t.hits,t)})).catch((function(t){i.error(t.message)}))}});t.exports=function(t,e){var n=r(t.as._ua);if(n&&n[0]>=3&&n[1]>20){var i="autocomplete.js "+s;-1===t.as._ua.indexOf(i)&&(t.as._ua+="; "+i)}return u(t,e)}},3580:(t,e,n)=>{"use strict";t.exports={hits:n(9983),popularIn:n(4445)}},4445:(t,e,n)=>{"use strict";var i=n(2856),s=n(533),r=n(6177);t.exports=function(t,e,n,o){var a=r(t.as._ua);if(a&&a[0]>=3&&a[1]>20&&((e=e||{}).additionalUA="autocomplete.js "+s),!n.source)return i.error("Missing 'source' key");var u=i.isFunction(n.source)?n.source:function(t){return t[n.source]};if(!n.index)return i.error("Missing 'index' key");var c=n.index;return o=o||{},function(a,l){t.search(a,e,(function(t,a){if(t)i.error(t.message);else{if(a.hits.length>0){var h=a.hits[0],p=i.mixin({hitsPerPage:0},n);delete p.source,delete p.index;var f=r(c.as._ua);return f&&f[0]>=3&&f[1]>20&&(e.additionalUA="autocomplete.js "+s),void c.search(u(h),p,(function(t,e){if(t)i.error(t.message);else{var n=[];if(o.includeAll){var s=o.allTitle||"All departments";n.push(i.mixin({facet:{value:s,count:e.nbHits}},i.cloneDeep(h)))}i.each(e.facets,(function(t,e){i.each(t,(function(t,s){n.push(i.mixin({facet:{facet:e,value:s,count:t}},i.cloneDeep(h)))}))}));for(var r=1;r{"use strict";var i=n(6990);n(4910).element=i;var s=n(2856);s.isArray=i.isArray,s.isFunction=i.isFunction,s.isObject=i.isPlainObject,s.bind=i.proxy,s.each=function(t,e){i.each(t,(function(t,n){return e(n,t)}))},s.map=i.map,s.mixin=i.extend,s.Event=i.Event;var r="aaAutocomplete",o=n(6549),a=n(50);function u(t,e,n,u){n=s.isArray(n)?n:[].slice.call(arguments,2);var c=i(t).each((function(t,s){var c=i(s),l=new a({el:c}),h=u||new o({input:c,eventBus:l,dropdownMenuContainer:e.dropdownMenuContainer,hint:void 0===e.hint||!!e.hint,minLength:e.minLength,autoselect:e.autoselect,autoselectOnBlur:e.autoselectOnBlur,tabAutocomplete:e.tabAutocomplete,openOnFocus:e.openOnFocus,templates:e.templates,debug:e.debug,clearOnSelected:e.clearOnSelected,cssClasses:e.cssClasses,datasets:n,keyboardShortcuts:e.keyboardShortcuts,appendTo:e.appendTo,autoWidth:e.autoWidth,ariaLabel:e.ariaLabel||s.getAttribute("aria-label")});c.data(r,h)}));return c.autocomplete={},s.each(["open","close","getVal","setVal","destroy","getWrapper"],(function(t){c.autocomplete[t]=function(){var e,n=arguments;return c.each((function(s,o){var a=i(o).data(r);e=a[t].apply(a,n)})),e}})),c}u.sources=o.sources,u.escapeHighlightedString=s.escapeHighlightedString;var c="autocomplete"in window,l=window.autocomplete;u.noConflict=function(){return c?window.autocomplete=l:delete window.autocomplete,u},t.exports=u},533:t=>{t.exports="0.38.1"},6990:t=>{var e;e=window,t.exports=function(t){var e,n,i=function(){var e,n,i,s,r,o,a=[],u=a.concat,c=a.filter,l=a.slice,h=t.document,p={},f={},d={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},g=/^\s*<(\w+|!)[^>]*>/,m=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,y=/^(?:body|html)$/i,w=/([A-Z])/g,b=["val","css","html","text","data","width","height","offset"],C=["after","prepend","before","append"],x=h.createElement("table"),_=h.createElement("tr"),S={tr:h.createElement("tbody"),tbody:x,thead:x,tfoot:x,td:_,th:_,"*":h.createElement("div")},E=/complete|loaded|interactive/,A=/^[\w-]*$/,$={},T=$.toString,O={},D=h.createElement("div"),N={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},k=Array.isArray||function(t){return t instanceof Array};function I(t){return null==t?String(t):$[T.call(t)]||"object"}function P(t){return"function"==I(t)}function L(t){return null!=t&&t==t.window}function M(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function F(t){return"object"==I(t)}function R(t){return F(t)&&!L(t)&&Object.getPrototypeOf(t)==Object.prototype}function q(t){var e=!!t&&"length"in t&&t.length,n=i.type(t);return"function"!=n&&!L(t)&&("array"==n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function V(t){return c.call(t,(function(t){return null!=t}))}function H(t){return t.length>0?i.fn.concat.apply([],t):t}function B(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function K(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function j(t,e){return"number"!=typeof e||d[B(t)]?e:e+"px"}function z(t){var e,n;return p[t]||(e=h.createElement(t),h.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),p[t]=n),p[t]}function U(t){return"children"in t?l.call(t.children):i.map(t.childNodes,(function(t){if(1==t.nodeType)return t}))}function Q(t,e){var n,i=t?t.length:0;for(n=0;n")),n===e&&(n=g.test(t)&&RegExp.$1),n in S||(n="*"),(a=S[n]).innerHTML=""+t,r=i.each(l.call(a.childNodes),(function(){a.removeChild(this)}))),R(s)&&(o=i(r),i.each(s,(function(t,e){b.indexOf(t)>-1?o[t](e):o.attr(t,e)}))),r},O.Z=function(t,e){return new Q(t,e)},O.isZ=function(t){return t instanceof O.Z},O.init=function(t,n){var s;if(!t)return O.Z();if("string"==typeof t)if("<"==(t=t.trim())[0]&&g.test(t))s=O.fragment(t,RegExp.$1,n),t=null;else{if(n!==e)return i(n).find(t);s=O.qsa(h,t)}else{if(P(t))return i(h).ready(t);if(O.isZ(t))return t;if(k(t))s=V(t);else if(F(t))s=[t],t=null;else if(g.test(t))s=O.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==e)return i(n).find(t);s=O.qsa(h,t)}}return O.Z(s,t)},(i=function(t,e){return O.init(t,e)}).extend=function(t){var e,n=l.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach((function(n){W(t,n,e)})),t},O.qsa=function(t,e){var n,i="#"==e[0],s=!i&&"."==e[0],r=i||s?e.slice(1):e,o=A.test(r);return t.getElementById&&o&&i?(n=t.getElementById(r))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:l.call(o&&!i&&t.getElementsByClassName?s?t.getElementsByClassName(r):t.getElementsByTagName(e):t.querySelectorAll(e))},i.contains=h.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},i.type=I,i.isFunction=P,i.isWindow=L,i.isArray=k,i.isPlainObject=R,i.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},i.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},i.inArray=function(t,e,n){return a.indexOf.call(e,t,n)},i.camelCase=r,i.trim=function(t){return null==t?"":String.prototype.trim.call(t)},i.uuid=0,i.support={},i.expr={},i.noop=function(){},i.map=function(t,e){var n,i,s,r=[];if(q(t))for(i=0;i=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each((function(){null!=this.parentNode&&this.parentNode.removeChild(this)}))},each:function(t){return a.every.call(this,(function(e,n){return!1!==t.call(e,n,e)})),this},filter:function(t){return P(t)?this.not(this.not(t)):i(c.call(this,(function(e){return O.matches(e,t)})))},add:function(t,e){return i(o(this.concat(i(t,e))))},is:function(t){return this.length>0&&O.matches(this[0],t)},not:function(t){var n=[];if(P(t)&&t.call!==e)this.each((function(e){t.call(this,e)||n.push(this)}));else{var s="string"==typeof t?this.filter(t):q(t)&&P(t.item)?l.call(t):i(t);this.forEach((function(t){s.indexOf(t)<0&&n.push(t)}))}return i(n)},has:function(t){return this.filter((function(){return F(t)?i.contains(this,t):i(this).find(t).size()}))},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!F(t)?t:i(t)},last:function(){var t=this[this.length-1];return t&&!F(t)?t:i(t)},find:function(t){var e=this;return t?"object"==typeof t?i(t).filter((function(){var t=this;return a.some.call(e,(function(e){return i.contains(e,t)}))})):1==this.length?i(O.qsa(this[0],t)):this.map((function(){return O.qsa(this,t)})):i()},closest:function(t,e){var n=[],s="object"==typeof t&&i(t);return this.each((function(i,r){for(;r&&!(s?s.indexOf(r)>=0:O.matches(r,t));)r=r!==e&&!M(r)&&r.parentNode;r&&n.indexOf(r)<0&&n.push(r)})),i(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=i.map(n,(function(t){if((t=t.parentNode)&&!M(t)&&e.indexOf(t)<0)return e.push(t),t}));return Z(e,t)},parent:function(t){return Z(o(this.pluck("parentNode")),t)},children:function(t){return Z(this.map((function(){return U(this)})),t)},contents:function(){return this.map((function(){return this.contentDocument||l.call(this.childNodes)}))},siblings:function(t){return Z(this.map((function(t,e){return c.call(U(e.parentNode),(function(t){return t!==e}))})),t)},empty:function(){return this.each((function(){this.innerHTML=""}))},pluck:function(t){return i.map(this,(function(e){return e[t]}))},show:function(){return this.each((function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=z(this.nodeName))}))},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=P(t);if(this[0]&&!e)var n=i(t).get(0),s=n.parentNode||this.length>1;return this.each((function(r){i(this).wrapAll(e?t.call(this,r):s?n.cloneNode(!0):n)}))},wrapAll:function(t){if(this[0]){var e;for(i(this[0]).before(t=i(t));(e=t.children()).length;)t=e.first();i(t).append(this)}return this},wrapInner:function(t){var e=P(t);return this.each((function(n){var s=i(this),r=s.contents(),o=e?t.call(this,n):t;r.length?r.wrapAll(o):s.append(o)}))},unwrap:function(){return this.parent().each((function(){i(this).replaceWith(i(this).children())})),this},clone:function(){return this.map((function(){return this.cloneNode(!0)}))},hide:function(){return this.css("display","none")},toggle:function(t){return this.each((function(){var n=i(this);(t===e?"none"==n.css("display"):t)?n.show():n.hide()}))},prev:function(t){return i(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return i(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each((function(e){var n=this.innerHTML;i(this).empty().append(X(this,t,e,n))})):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each((function(e){var n=X(this,t,e,this.textContent);this.textContent=null==n?"":""+n})):0 in this?this.pluck("textContent").join(""):null},attr:function(t,i){var s;return"string"!=typeof t||1 in arguments?this.each((function(e){if(1===this.nodeType)if(F(t))for(n in t)G(this,n,t[n]);else G(this,t,X(this,i,e,this.getAttribute(t)))})):0 in this&&1==this[0].nodeType&&null!=(s=this[0].getAttribute(t))?s:e},removeAttr:function(t){return this.each((function(){1===this.nodeType&&t.split(" ").forEach((function(t){G(this,t)}),this)}))},prop:function(t,e){return t=N[t]||t,1 in arguments?this.each((function(n){this[t]=X(this,e,n,this[t])})):this[0]&&this[0][t]},removeProp:function(t){return t=N[t]||t,this.each((function(){delete this[t]}))},data:function(t,n){var i="data-"+t.replace(w,"-$1").toLowerCase(),s=1 in arguments?this.attr(i,n):this.attr(i);return null!==s?Y(s):e},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each((function(e){this.value=X(this,t,e,this.value)}))):this[0]&&(this[0].multiple?i(this[0]).find("option").filter((function(){return this.selected})).pluck("value"):this[0].value)},offset:function(e){if(e)return this.each((function(t){var n=i(this),s=X(this,e,t,n.offset()),r=n.offsetParent().offset(),o={top:s.top-r.top,left:s.left-r.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)}));if(!this.length)return null;if(h.documentElement!==this[0]&&!i.contains(h.documentElement,this[0]))return{top:0,left:0};var n=this[0].getBoundingClientRect();return{left:n.left+t.pageXOffset,top:n.top+t.pageYOffset,width:Math.round(n.width),height:Math.round(n.height)}},css:function(t,e){if(arguments.length<2){var s=this[0];if("string"==typeof t){if(!s)return;return s.style[r(t)]||getComputedStyle(s,"").getPropertyValue(t)}if(k(t)){if(!s)return;var o={},a=getComputedStyle(s,"");return i.each(t,(function(t,e){o[e]=s.style[r(e)]||a.getPropertyValue(e)})),o}}var u="";if("string"==I(t))e||0===e?u=B(t)+":"+j(t,e):this.each((function(){this.style.removeProperty(B(t))}));else for(n in t)t[n]||0===t[n]?u+=B(n)+":"+j(n,t[n])+";":this.each((function(){this.style.removeProperty(B(n))}));return this.each((function(){this.style.cssText+=";"+u}))},index:function(t){return t?this.indexOf(i(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&a.some.call(this,(function(t){return this.test(J(t))}),K(t))},addClass:function(t){return t?this.each((function(e){if("className"in this){s=[];var n=J(this);X(this,t,e,n).split(/\s+/g).forEach((function(t){i(this).hasClass(t)||s.push(t)}),this),s.length&&J(this,n+(n?" ":"")+s.join(" "))}})):this},removeClass:function(t){return this.each((function(n){if("className"in this){if(t===e)return J(this,"");s=J(this),X(this,t,n,s).split(/\s+/g).forEach((function(t){s=s.replace(K(t)," ")})),J(this,s.trim())}}))},toggleClass:function(t,n){return t?this.each((function(s){var r=i(this);X(this,t,s,J(this)).split(/\s+/g).forEach((function(t){(n===e?!r.hasClass(t):n)?r.addClass(t):r.removeClass(t)}))})):this},scrollTop:function(t){if(this.length){var n="scrollTop"in this[0];return t===e?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var n="scrollLeft"in this[0];return t===e?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),s=y.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(i(t).css("margin-top"))||0,n.left-=parseFloat(i(t).css("margin-left"))||0,s.top+=parseFloat(i(e[0]).css("border-top-width"))||0,s.left+=parseFloat(i(e[0]).css("border-left-width"))||0,{top:n.top-s.top,left:n.left-s.left}}},offsetParent:function(){return this.map((function(){for(var t=this.offsetParent||h.body;t&&!y.test(t.nodeName)&&"static"==i(t).css("position");)t=t.offsetParent;return t}))}},i.fn.detach=i.fn.remove,["width","height"].forEach((function(t){var n=t.replace(/./,(function(t){return t[0].toUpperCase()}));i.fn[t]=function(s){var r,o=this[0];return s===e?L(o)?o["inner"+n]:M(o)?o.documentElement["scroll"+n]:(r=this.offset())&&r[t]:this.each((function(e){(o=i(this)).css(t,X(this,s,e,o[t]()))}))}})),C.forEach((function(n,s){var r=s%2;i.fn[n]=function(){var n,o,a=i.map(arguments,(function(t){var s=[];return"array"==(n=I(t))?(t.forEach((function(t){return t.nodeType!==e?s.push(t):i.zepto.isZ(t)?s=s.concat(t.get()):void(s=s.concat(O.fragment(t)))})),s):"object"==n||null==t?t:O.fragment(t)})),u=this.length>1;return a.length<1?this:this.each((function(e,n){o=r?n:n.parentNode,n=0==s?n.nextSibling:1==s?n.firstChild:2==s?n:null;var c=i.contains(h.documentElement,o);a.forEach((function(e){if(u)e=e.cloneNode(!0);else if(!o)return i(e).remove();o.insertBefore(e,n),c&&tt(e,(function(e){if(!(null==e.nodeName||"SCRIPT"!==e.nodeName.toUpperCase()||e.type&&"text/javascript"!==e.type||e.src)){var n=e.ownerDocument?e.ownerDocument.defaultView:t;n.eval.call(n,e.innerHTML)}}))}))}))},i.fn[r?n+"To":"insert"+(s?"Before":"After")]=function(t){return i(t)[n](this),this}})),O.Z.prototype=Q.prototype=i.fn,O.uniq=o,O.deserializeValue=Y,i.zepto=O,i}();return function(e){var n,i=1,s=Array.prototype.slice,r=e.isFunction,o=function(t){return"string"==typeof t},a={},u={},c="onfocusin"in t,l={focus:"focusin",blur:"focusout"},h={mouseenter:"mouseover",mouseleave:"mouseout"};function p(t){return t._zid||(t._zid=i++)}function f(t,e,n,i){if((e=d(e)).ns)var s=g(e.ns);return(a[p(t)]||[]).filter((function(t){return t&&(!e.e||t.e==e.e)&&(!e.ns||s.test(t.ns))&&(!n||p(t.fn)===p(n))&&(!i||t.sel==i)}))}function d(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function g(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function m(t,e){return t.del&&!c&&t.e in l||!!e}function v(t){return h[t]||c&&l[t]||t}function y(t,i,s,r,o,u,c){var l=p(t),f=a[l]||(a[l]=[]);i.split(/\s/).forEach((function(i){if("ready"==i)return e(document).ready(s);var a=d(i);a.fn=s,a.sel=o,a.e in h&&(s=function(t){var n=t.relatedTarget;if(!n||n!==this&&!e.contains(this,n))return a.fn.apply(this,arguments)}),a.del=u;var l=u||s;a.proxy=function(e){if(!(e=S(e)).isImmediatePropagationStopped()){try{var i=Object.getOwnPropertyDescriptor(e,"data");i&&!i.writable||(e.data=r)}catch(e){}var s=l.apply(t,e._args==n?[e]:[e].concat(e._args));return!1===s&&(e.preventDefault(),e.stopPropagation()),s}},a.i=f.length,f.push(a),"addEventListener"in t&&t.addEventListener(v(a.e),a.proxy,m(a,c))}))}function w(t,e,n,i,s){var r=p(t);(e||"").split(/\s/).forEach((function(e){f(t,e,n,i).forEach((function(e){delete a[r][e.i],"removeEventListener"in t&&t.removeEventListener(v(e.e),e.proxy,m(e,s))}))}))}u.click=u.mousedown=u.mouseup=u.mousemove="MouseEvents",e.event={add:y,remove:w},e.proxy=function(t,n){var i=2 in arguments&&s.call(arguments,2);if(r(t)){var a=function(){return t.apply(n,i?i.concat(s.call(arguments)):arguments)};return a._zid=p(t),a}if(o(n))return i?(i.unshift(t[n],t),e.proxy.apply(null,i)):e.proxy(t[n],t);throw new TypeError("expected function")},e.fn.bind=function(t,e,n){return this.on(t,e,n)},e.fn.unbind=function(t,e){return this.off(t,e)},e.fn.one=function(t,e,n,i){return this.on(t,e,n,i,1)};var b=function(){return!0},C=function(){return!1},x=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,_={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};function S(t,i){if(i||!t.isDefaultPrevented){i||(i=t),e.each(_,(function(e,n){var s=i[e];t[e]=function(){return this[n]=b,s&&s.apply(i,arguments)},t[n]=C}));try{t.timeStamp||(t.timeStamp=Date.now())}catch(s){}(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?!1===i.returnValue:i.getPreventDefault&&i.getPreventDefault())&&(t.isDefaultPrevented=b)}return t}function E(t){var e,i={originalEvent:t};for(e in t)x.test(e)||t[e]===n||(i[e]=t[e]);return S(i,t)}e.fn.delegate=function(t,e,n){return this.on(e,t,n)},e.fn.undelegate=function(t,e,n){return this.off(e,t,n)},e.fn.live=function(t,n){return e(document.body).delegate(this.selector,t,n),this},e.fn.die=function(t,n){return e(document.body).undelegate(this.selector,t,n),this},e.fn.on=function(t,i,a,u,c){var l,h,p=this;return t&&!o(t)?(e.each(t,(function(t,e){p.on(t,i,a,e,c)})),p):(o(i)||r(u)||!1===u||(u=a,a=i,i=n),u!==n&&!1!==a||(u=a,a=n),!1===u&&(u=C),p.each((function(n,r){c&&(l=function(t){return w(r,t.type,u),u.apply(this,arguments)}),i&&(h=function(t){var n,o=e(t.target).closest(i,r).get(0);if(o&&o!==r)return n=e.extend(E(t),{currentTarget:o,liveFired:r}),(l||u).apply(o,[n].concat(s.call(arguments,1)))}),y(r,t,u,a,i,h||l)})))},e.fn.off=function(t,i,s){var a=this;return t&&!o(t)?(e.each(t,(function(t,e){a.off(t,i,e)})),a):(o(i)||r(s)||!1===s||(s=i,i=n),!1===s&&(s=C),a.each((function(){w(this,t,s,i)})))},e.fn.trigger=function(t,n){return(t=o(t)||e.isPlainObject(t)?e.Event(t):S(t))._args=n,this.each((function(){t.type in l&&"function"==typeof this[t.type]?this[t.type]():"dispatchEvent"in this?this.dispatchEvent(t):e(this).triggerHandler(t,n)}))},e.fn.triggerHandler=function(t,n){var i,s;return this.each((function(r,a){(i=E(o(t)?e.Event(t):t))._args=n,i.target=a,e.each(f(a,t.type||t),(function(t,e){if(s=e.proxy(i),i.isImmediatePropagationStopped())return!1}))})),s},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach((function(t){e.fn[t]=function(e){return 0 in arguments?this.bind(t,e):this.trigger(t)}})),e.Event=function(t,e){o(t)||(t=(e=t).type);var n=document.createEvent(u[t]||"Events"),i=!0;if(e)for(var s in e)"bubbles"==s?i=!!e[s]:n[s]=e[s];return n.initEvent(t,i,!0),S(n)}}(i),n=[],i.fn.remove=function(){return this.each((function(){this.parentNode&&("IMG"===this.tagName&&(n.push(this),this.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",e&&clearTimeout(e),e=setTimeout((function(){n=[]}),6e4)),this.parentNode.removeChild(this))}))},function(t){var e={},n=t.fn.data,i=t.camelCase,s=t.expando="Zepto"+ +new Date,r=[];function o(r,o){var u=r[s],c=u&&e[u];if(void 0===o)return c||a(r);if(c){if(o in c)return c[o];var l=i(o);if(l in c)return c[l]}return n.call(t(r),o)}function a(n,r,o){var a=n[s]||(n[s]=++t.uuid),c=e[a]||(e[a]=u(n));return void 0!==r&&(c[i(r)]=o),c}function u(e){var n={};return t.each(e.attributes||r,(function(e,s){0==s.name.indexOf("data-")&&(n[i(s.name.replace("data-",""))]=t.zepto.deserializeValue(s.value))})),n}t.fn.data=function(e,n){return void 0===n?t.isPlainObject(e)?this.each((function(n,i){t.each(e,(function(t,e){a(i,t,e)}))})):0 in this?o(this[0],e):void 0:this.each((function(){a(this,e,n)}))},t.data=function(e,n,i){return t(e).data(n,i)},t.hasData=function(n){var i=n[s],r=i&&e[i];return!!r&&!t.isEmptyObject(r)},t.fn.removeData=function(n){return"string"==typeof n&&(n=n.split(/\s+/)),this.each((function(){var r=this[s],o=r&&e[r];o&&t.each(n||o,(function(t){delete o[n?i(this):t]}))}))},["remove","empty"].forEach((function(e){var n=t.fn[e];t.fn[e]=function(){var t=this.find("*");return"remove"===e&&(t=t.add(this)),t.removeData(),n.call(this)}}))}(i),i}(e)},8820:t=>{"use strict";var e={}.hasOwnProperty,n=/[ -,\.\/:-@\[-\^`\{-~]/,i=/[ -,\.\/:-@\[\]\^`\{-~]/,s=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,r=function t(r,o){"single"!=(o=function(t,n){if(!t)return n;var i={};for(var s in n)i[s]=e.call(t,s)?t[s]:n[s];return i}(o,t.options)).quotes&&"double"!=o.quotes&&(o.quotes="single");for(var a="double"==o.quotes?'"':"'",u=o.isIdentifier,c=r.charAt(0),l="",h=0,p=r.length;h126){if(d>=55296&&d<=56319&&h{"use strict";var i,s,r,o=[n(5525),n(4785),n(8291),n(2709),n(2506),n(9176)],a=-1,u=[],c=!1;function l(){i&&s&&(i=!1,s.length?u=s.concat(u):a=-1,u.length&&h())}function h(){if(!i){c=!1,i=!0;for(var t=u.length,e=setTimeout(l);t;){for(s=u,u=[];s&&++a1)for(var n=1;n{"use strict";e.test=function(){return!n.g.setImmediate&&void 0!==n.g.MessageChannel},e.install=function(t){var e=new n.g.MessageChannel;return e.port1.onmessage=t,function(){e.port2.postMessage(0)}}},8291:(t,e,n)=>{"use strict";var i=n.g.MutationObserver||n.g.WebKitMutationObserver;e.test=function(){return i},e.install=function(t){var e=0,s=new i(t),r=n.g.document.createTextNode("");return s.observe(r,{characterData:!0}),function(){r.data=e=++e%2}}},4785:(t,e,n)=>{"use strict";e.test=function(){return"function"==typeof n.g.queueMicrotask},e.install=function(t){return function(){n.g.queueMicrotask(t)}}},2506:(t,e,n)=>{"use strict";e.test=function(){return"document"in n.g&&"onreadystatechange"in n.g.document.createElement("script")},e.install=function(t){return function(){var e=n.g.document.createElement("script");return e.onreadystatechange=function(){t(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},n.g.document.documentElement.appendChild(e),t}}},9176:(t,e)=>{"use strict";e.test=function(){return!0},e.install=function(t){return function(){setTimeout(t,0)}}}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/8443.0183610a.js.LICENSE.txt b/handbook/build/assets/js/8443.0060be2a.js.LICENSE.txt similarity index 100% rename from handbook/build/assets/js/8443.0183610a.js.LICENSE.txt rename to handbook/build/assets/js/8443.0060be2a.js.LICENSE.txt diff --git a/handbook/build/assets/js/91a311b4.2658460e.js b/handbook/build/assets/js/91a311b4.b07ea5ca.js similarity index 96% rename from handbook/build/assets/js/91a311b4.2658460e.js rename to handbook/build/assets/js/91a311b4.b07ea5ca.js index c3023abae3b109454a38dfcbc2b7740be33a4a4f..77a5a77bee23cbbc2a58284ad9bbf7ef34dcf051 100644 --- a/handbook/build/assets/js/91a311b4.2658460e.js +++ b/handbook/build/assets/js/91a311b4.b07ea5ca.js @@ -1 +1 @@ -"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[4850],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>b});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 s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var a=o.createContext({}),l=function(e){var t=o.useContext(a),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return o.createElement(a.Provider,{value:t},e.children)},m={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,a=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=l(n),b=r,u=d["".concat(a,".").concat(b)]||d[b]||m[b]||c;return n?o.createElement(u,s(s({ref:t},p),{},{components:n})):o.createElement(u,s({ref:t},p))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var c=n.length,s=new Array(c);s[0]=d;var i={};for(var a in t)hasOwnProperty.call(t,a)&&(i[a]=t[a]);i.originalType=e,i.mdxType="string"==typeof e?e:r,s[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>m,frontMatter:()=>c,metadata:()=>i,toc:()=>l});var o=n(7462),r=(n(7294),n(3905));const c={id:"jsonserialize",title:"Json\u5e8f\u5217\u5316"},s=void 0,i={unversionedId:"jsonserialize",id:"jsonserialize",title:"Json\u5e8f\u5217\u5316",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/jsonserialize.mdx",sourceDirName:".",slug:"/jsonserialize",permalink:"/touchsocket/docs/jsonserialize",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/jsonserialize.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"jsonserialize",title:"Json\u5e8f\u5217\u5316"},sidebar:"docs",previous:{title:"\u9ad8\u6027\u80fd\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316",permalink:"/touchsocket/docs/fastbinaryformatter"},next:{title:"\u4f9d\u8d56\u6ce8\u5165\u5bb9\u5668",permalink:"/touchsocket/docs/ioc"}},a={},l=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u52a8\u6001\u8c03\u6574\u7684Json\u7b56\u7565",id:"\u4e8c\u52a8\u6001\u8c03\u6574\u7684json\u7b56\u7565",level:2},{value:"\u4e09\u3001JsonFast\u6027\u80fd",id:"\u4e09jsonfast\u6027\u80fd",level:2}],p={toc:l};function m(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,"\u5728TouchSocket\u4e2d\uff0c\u5185\u7f6e\u4e86Json\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"string jsonstr=SerializeConvert.ToJson(new object());//\u5e8f\u5217\u5316\nobject obj=SerializeConvert.FromJson(jsonstr);//\u53cd\u5e8f\u5217\u5316\n")),(0,r.kt)("h2",{id:"\u4e8c\u52a8\u6001\u8c03\u6574\u7684json\u7b56\u7565"},"\u4e8c\u3001\u52a8\u6001\u8c03\u6574\u7684Json\u7b56\u7565"),(0,r.kt)("p",null,"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff1a\n\u5728net45\u548cnetstandard2.0\u5e73\u53f0\u65f6\uff0c\u5e8f\u5217\u5316\u65b9\u5f0f\u662f\u7531",(0,r.kt)("a",{parentName:"p",href:"https://gitee.com/majorworld/jsonfast"},"JsonFast\uff08\u7fa4\u53cb\u8001\u6c5f\uff09"),"\u63d0\u4f9b\u7684\u5355\u6587\u4ef6json\u5e8f\u5217\u5316\u3002\u8be5json\u5de5\u5177\u80fd\u591f\u5e8f\u5217\u5316\u5927\u591a\u6570\u6570\u636e\u7ed3\u6784\uff0c\u4e14\u6027\u80fd\u548cNewtonsoft.Json\u4e0d\u76f8\u4e0a\u4e0b\uff08\u89c1\u4e0b\u6d4b\u8bd5\uff09\u3002\n\u5728netcoreapp3.1\u53ca\u4ee5\u4e0a\u5e73\u53f0\u65f6\uff0c\u5e8f\u5217\u5316\u65b9\u5f0f\u4f7f\u7528System.Text.Json\u3002"),(0,r.kt)("p",null,"\u4f46\u662f\n\u5f53\u5e94\u7528\u4e2d\u52a0\u8f7d\u4e86Newtonsoft.Json\u7684\u7a0b\u5e8f\u96c6\u540e\uff0c\u6240\u6709\u7684\u5e73\u53f0\u7684\u5e8f\u5217\u5316\uff0c\u5747\u4f1a\u4f7f\u7528Newtonsoft.Json\u3002\u53ef\u901a\u8fc7",(0,r.kt)("inlineCode",{parentName:"p"},"**SerializeConvert.NewtonsoftJsonIsSupported**"),"\u9759\u6001\u5c5e\u6027\u83b7\u53d6\u5f53\u524d\u662f\u5426\u652f\u6301Newtonsoft.Json\u3002"),(0,r.kt)("p",null,"\u4e5f\u53ef\u4ee5\u624b\u52a8\u52a0\u8f7dNewtonsoft.Json\uff08\u4e00\u822c\u5728",(0,r.kt)("strong",{parentName:"p"},"Unity3d"),"\u4e2d\u9700\u8981\u624b\u52a8\u52a0\u8f7d\uff09\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"bool IsSupported=SerializeConvert.LoadNewtonsoftJson(typeof(JsonConvert));//\u8fd4\u56de\u503c\u6307\u793a\u662f\u5426\u6210\u529f\u52a0\u8f7d\n")),(0,r.kt)("p",null,"\u5f53\u52a0\u8f7d\u4e86Newtonsoft.Json\u7684\u7a0b\u5e8f\u96c6\uff0c\u4f46\u662f\u4e0d\u60f3\u4f7f\u7528\u8be5\u5de5\u5177\u5e8f\u5217\u5316\u65f6\uff0c\u53ef\u5c06",(0,r.kt)("inlineCode",{parentName:"p"},"**SerializeConvert.NewtonsoftJsonFirst**"),"\u9759\u6001\u5c5e\u6027\u8bbe\u4e3afalse\u3002"),(0,r.kt)("h2",{id:"\u4e09jsonfast\u6027\u80fd"},"\u4e09\u3001JsonFast\u6027\u80fd"),(0,r.kt)("p",null,"\u3010\u7b80\u5355\u6570\u636e\u5bf9\u8c61\u3011"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"public class SimpleObject \n{\n public int Age { get; set; }\n public string Name { get; set; }\n}\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'[Benchmark]\npublic void JsonFast_SimpleObject()\n{\n var v = new SimpleObject { Age = 40, Name = "John" };\n for (int i = 0; i < Count; i++)\n {\n var str = JsonFastConverter.JsonTo(v);\n var val = JsonFastConverter.JsonFrom(str);\n }\n}\n')),(0,r.kt)("p",null,"\u4e0b\u56fe\u4e3a1w\u6b21\u7684\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\u3002JsonFast\u7684\u6548\u7387\u751a\u81f3\u8fd8\u7a0d\u9ad8\u4e00\u4e9b\u3002\n",(0,r.kt)("img",{alt:"image.png",src:n(2659).Z,width:"1198",height:"183"})),(0,r.kt)("p",null,"\u3010\u590d\u6742\u5bf9\u8c61\u3011"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"public class ComplexObject\n{\n public Dictionary Dic1 { get; set; }\n public Dictionary Dic2 { get; set; }\n public Dictionary Dic3 { get; set; }\n public Dictionary Dic4 { get; set; }\n public List List1 { get; set; }\n public List List2 { get; set; }\n public List List3 { get; set; }\n public int P1 { get; set; }\n public string P2 { get; set; }\n public long P3 { get; set; }\n public byte P4 { get; set; }\n public DateTime P5 { get; set; }\n public double P6 { get; set; }\n public byte[] P7 { get; set; }\n}\n\npublic class Arg\n{\n public Arg()\n {\n }\n\n public Arg(int myProperty)\n {\n MyProperty = myProperty;\n }\n\n public int MyProperty { get; set; }\n}\n")),(0,r.kt)("p",null,"\u521d\u59cb\u5316"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'private ComplexObject GetComplexObject()\n{\n ComplexObject complexObject = new ComplexObject();\n complexObject.P1 = 10;\n complexObject.P2 = "\u5929\u4e0b\u65e0\u654c";\n complexObject.P3 = 100;\n complexObject.P4 = 0;\n complexObject.P5 = DateTime.Now;\n complexObject.P6 = 10;\n complexObject.P7 = new byte[1024 * 64];\n\n Random random = new Random();\n random.NextBytes(complexObject.P7);\n\n complexObject.List1 = new List();\n complexObject.List1.Add(1);\n complexObject.List1.Add(2);\n complexObject.List1.Add(3);\n\n complexObject.List2 = new List();\n complexObject.List2.Add("1");\n complexObject.List2.Add("2");\n complexObject.List2.Add("3");\n\n complexObject.List3 = new List();\n complexObject.List3.Add(new byte[1024]);\n complexObject.List3.Add(new byte[1024]);\n complexObject.List3.Add(new byte[1024]);\n\n complexObject.Dic1 = new Dictionary();\n complexObject.Dic1.Add(1, 1);\n complexObject.Dic1.Add(2, 2);\n complexObject.Dic1.Add(3, 3);\n\n complexObject.Dic2 = new Dictionary();\n complexObject.Dic2.Add(1, "1");\n complexObject.Dic2.Add(2, "2");\n complexObject.Dic2.Add(3, "3");\n\n complexObject.Dic3 = new Dictionary();\n complexObject.Dic3.Add("1", "1");\n complexObject.Dic3.Add("2", "2");\n complexObject.Dic3.Add("3", "3");\n\n complexObject.Dic4 = new Dictionary();\n complexObject.Dic4.Add(1, new Arg(1));\n complexObject.Dic4.Add(2, new Arg(2));\n complexObject.Dic4.Add(3, new Arg(3));\n return complexObject;\n}\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"[Benchmark]\npublic void JsonFast_ComplexObject()\n{\n var v = GetComplexObject();\n for (int i = 0; i < Count; i++)\n {\n var str = JsonFastConverter.JsonTo(v);\n var val = JsonFastConverter.JsonFrom(str);\n }\n}\n")),(0,r.kt)("p",null,"\u4e0b\u56fe\u4e3a100\u6b21\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\uff0cJsonFast\u6027\u80fd\u7a0d\u5f31\uff0c\u4f46\u662f\u57fa\u672c\u6ee1\u8db3\u8981\u6c42\u3002\n",(0,r.kt)("img",{alt:"image.png",src:n(822).Z,width:"1262",height:"188"})))}m.isMDXComponent=!0},2659:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/jsonserialize-1-a32327fa8972eacb38ae1e5930655a90.png"},822:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/jsonserialize-2-c45920c130f4a3cedcaad54fb9d8a389.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[4850],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>b});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 s(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var a=o.createContext({}),l=function(e){var t=o.useContext(a),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=l(e.components);return o.createElement(a.Provider,{value:t},e.children)},m={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,a=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=l(n),b=r,u=d["".concat(a,".").concat(b)]||d[b]||m[b]||c;return n?o.createElement(u,s(s({ref:t},p),{},{components:n})):o.createElement(u,s({ref:t},p))}));function b(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var c=n.length,s=new Array(c);s[0]=d;var i={};for(var a in t)hasOwnProperty.call(t,a)&&(i[a]=t[a]);i.originalType=e,i.mdxType="string"==typeof e?e:r,s[1]=i;for(var l=2;l{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>s,default:()=>m,frontMatter:()=>c,metadata:()=>i,toc:()=>l});var o=n(7462),r=(n(7294),n(3905));const c={id:"jsonserialize",title:"Json\u5e8f\u5217\u5316"},s=void 0,i={unversionedId:"jsonserialize",id:"jsonserialize",title:"Json\u5e8f\u5217\u5316",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/jsonserialize.mdx",sourceDirName:".",slug:"/jsonserialize",permalink:"/touchsocket/docs/jsonserialize",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/jsonserialize.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"jsonserialize",title:"Json\u5e8f\u5217\u5316"},sidebar:"docs",previous:{title:"\u9ad8\u6027\u80fd\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316",permalink:"/touchsocket/docs/fastbinaryformatter"},next:{title:"\u4f9d\u8d56\u6ce8\u5165\u5bb9\u5668",permalink:"/touchsocket/docs/ioc"}},a={},l=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u52a8\u6001\u8c03\u6574\u7684Json\u7b56\u7565",id:"\u4e8c\u52a8\u6001\u8c03\u6574\u7684json\u7b56\u7565",level:2},{value:"\u4e09\u3001JsonFast\u6027\u80fd",id:"\u4e09jsonfast\u6027\u80fd",level:2}],p={toc:l};function m(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,"\u5728TouchSocket\u4e2d\uff0c\u5185\u7f6e\u4e86Json\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"string jsonstr=SerializeConvert.ToJson(new object());//\u5e8f\u5217\u5316\nobject obj=SerializeConvert.FromJson(jsonstr);//\u53cd\u5e8f\u5217\u5316\n")),(0,r.kt)("h2",{id:"\u4e8c\u52a8\u6001\u8c03\u6574\u7684json\u7b56\u7565"},"\u4e8c\u3001\u52a8\u6001\u8c03\u6574\u7684Json\u7b56\u7565"),(0,r.kt)("p",null,"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff1a\n\u5728net45\u548cnetstandard2.0\u5e73\u53f0\u65f6\uff0c\u5e8f\u5217\u5316\u65b9\u5f0f\u662f\u7531",(0,r.kt)("a",{parentName:"p",href:"https://gitee.com/majorworld/jsonfast"},"JsonFast\uff08\u7fa4\u53cb\u8001\u6c5f\uff09"),"\u63d0\u4f9b\u7684\u5355\u6587\u4ef6json\u5e8f\u5217\u5316\u3002\u8be5json\u5de5\u5177\u80fd\u591f\u5e8f\u5217\u5316\u5927\u591a\u6570\u6570\u636e\u7ed3\u6784\uff0c\u4e14\u6027\u80fd\u548cNewtonsoft.Json\u4e0d\u76f8\u4e0a\u4e0b\uff08\u89c1\u4e0b\u6d4b\u8bd5\uff09\u3002\n\u5728netcoreapp3.1\u53ca\u4ee5\u4e0a\u5e73\u53f0\u65f6\uff0c\u5e8f\u5217\u5316\u65b9\u5f0f\u4f7f\u7528System.Text.Json\u3002"),(0,r.kt)("p",null,"\u4f46\u662f\n\u5f53\u5e94\u7528\u4e2d\u52a0\u8f7d\u4e86Newtonsoft.Json\u7684\u7a0b\u5e8f\u96c6\u540e\uff0c\u6240\u6709\u7684\u5e73\u53f0\u7684\u5e8f\u5217\u5316\uff0c\u5747\u4f1a\u4f7f\u7528Newtonsoft.Json\u3002\u53ef\u901a\u8fc7",(0,r.kt)("inlineCode",{parentName:"p"},"**SerializeConvert.NewtonsoftJsonIsSupported**"),"\u9759\u6001\u5c5e\u6027\u83b7\u53d6\u5f53\u524d\u662f\u5426\u652f\u6301Newtonsoft.Json\u3002"),(0,r.kt)("p",null,"\u4e5f\u53ef\u4ee5\u624b\u52a8\u52a0\u8f7dNewtonsoft.Json\uff08\u4e00\u822c\u5728",(0,r.kt)("strong",{parentName:"p"},"Unity3d"),"\u4e2d\u9700\u8981\u624b\u52a8\u52a0\u8f7d\uff09\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"bool IsSupported=SerializeConvert.LoadNewtonsoftJson(typeof(JsonConvert));//\u8fd4\u56de\u503c\u6307\u793a\u662f\u5426\u6210\u529f\u52a0\u8f7d\n")),(0,r.kt)("p",null,"\u5f53\u52a0\u8f7d\u4e86Newtonsoft.Json\u7684\u7a0b\u5e8f\u96c6\uff0c\u4f46\u662f\u4e0d\u60f3\u4f7f\u7528\u8be5\u5de5\u5177\u5e8f\u5217\u5316\u65f6\uff0c\u53ef\u5c06",(0,r.kt)("inlineCode",{parentName:"p"},"**SerializeConvert.NewtonsoftJsonFirst**"),"\u9759\u6001\u5c5e\u6027\u8bbe\u4e3afalse\u3002"),(0,r.kt)("h2",{id:"\u4e09jsonfast\u6027\u80fd"},"\u4e09\u3001JsonFast\u6027\u80fd"),(0,r.kt)("p",null,"\u3010\u7b80\u5355\u6570\u636e\u5bf9\u8c61\u3011"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"public class SimpleObject \n{\n public int Age { get; set; }\n public string Name { get; set; }\n}\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'[Benchmark]\npublic void JsonFast_SimpleObject()\n{\n var v = new SimpleObject { Age = 40, Name = "John" };\n for (int i = 0; i < Count; i++)\n {\n var str = JsonFastConverter.JsonTo(v);\n var val = JsonFastConverter.JsonFrom(str);\n }\n}\n')),(0,r.kt)("p",null,"\u4e0b\u56fe\u4e3a1w\u6b21\u7684\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\u3002JsonFast\u7684\u6548\u7387\u751a\u81f3\u8fd8\u7a0d\u9ad8\u4e00\u4e9b\u3002\n",(0,r.kt)("img",{alt:"image.png",src:n(5229).Z,width:"1198",height:"183"})),(0,r.kt)("p",null,"\u3010\u590d\u6742\u5bf9\u8c61\u3011"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"public class ComplexObject\n{\n public Dictionary Dic1 { get; set; }\n public Dictionary Dic2 { get; set; }\n public Dictionary Dic3 { get; set; }\n public Dictionary Dic4 { get; set; }\n public List List1 { get; set; }\n public List List2 { get; set; }\n public List List3 { get; set; }\n public int P1 { get; set; }\n public string P2 { get; set; }\n public long P3 { get; set; }\n public byte P4 { get; set; }\n public DateTime P5 { get; set; }\n public double P6 { get; set; }\n public byte[] P7 { get; set; }\n}\n\npublic class Arg\n{\n public Arg()\n {\n }\n\n public Arg(int myProperty)\n {\n MyProperty = myProperty;\n }\n\n public int MyProperty { get; set; }\n}\n")),(0,r.kt)("p",null,"\u521d\u59cb\u5316"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},'private ComplexObject GetComplexObject()\n{\n ComplexObject complexObject = new ComplexObject();\n complexObject.P1 = 10;\n complexObject.P2 = "\u5929\u4e0b\u65e0\u654c";\n complexObject.P3 = 100;\n complexObject.P4 = 0;\n complexObject.P5 = DateTime.Now;\n complexObject.P6 = 10;\n complexObject.P7 = new byte[1024 * 64];\n\n Random random = new Random();\n random.NextBytes(complexObject.P7);\n\n complexObject.List1 = new List();\n complexObject.List1.Add(1);\n complexObject.List1.Add(2);\n complexObject.List1.Add(3);\n\n complexObject.List2 = new List();\n complexObject.List2.Add("1");\n complexObject.List2.Add("2");\n complexObject.List2.Add("3");\n\n complexObject.List3 = new List();\n complexObject.List3.Add(new byte[1024]);\n complexObject.List3.Add(new byte[1024]);\n complexObject.List3.Add(new byte[1024]);\n\n complexObject.Dic1 = new Dictionary();\n complexObject.Dic1.Add(1, 1);\n complexObject.Dic1.Add(2, 2);\n complexObject.Dic1.Add(3, 3);\n\n complexObject.Dic2 = new Dictionary();\n complexObject.Dic2.Add(1, "1");\n complexObject.Dic2.Add(2, "2");\n complexObject.Dic2.Add(3, "3");\n\n complexObject.Dic3 = new Dictionary();\n complexObject.Dic3.Add("1", "1");\n complexObject.Dic3.Add("2", "2");\n complexObject.Dic3.Add("3", "3");\n\n complexObject.Dic4 = new Dictionary();\n complexObject.Dic4.Add(1, new Arg(1));\n complexObject.Dic4.Add(2, new Arg(2));\n complexObject.Dic4.Add(3, new Arg(3));\n return complexObject;\n}\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-csharp"},"[Benchmark]\npublic void JsonFast_ComplexObject()\n{\n var v = GetComplexObject();\n for (int i = 0; i < Count; i++)\n {\n var str = JsonFastConverter.JsonTo(v);\n var val = JsonFastConverter.JsonFrom(str);\n }\n}\n")),(0,r.kt)("p",null,"\u4e0b\u56fe\u4e3a100\u6b21\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\uff0cJsonFast\u6027\u80fd\u7a0d\u5f31\uff0c\u4f46\u662f\u57fa\u672c\u6ee1\u8db3\u8981\u6c42\u3002\n",(0,r.kt)("img",{alt:"image.png",src:n(7078).Z,width:"1262",height:"188"})))}m.isMDXComponent=!0},5229:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/jsonserialize-1-a32327fa8972eacb38ae1e5930655a90.png"},7078:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/jsonserialize-2-c45920c130f4a3cedcaad54fb9d8a389.png"}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/9a9e2780.0b00d2bc.js b/handbook/build/assets/js/9a9e2780.77c52640.js similarity index 68% rename from handbook/build/assets/js/9a9e2780.0b00d2bc.js rename to handbook/build/assets/js/9a9e2780.77c52640.js index 3cdb820a569a4b02ce0b47bdde6c19b0c81711c2..7c69ece0481153f63be82c6b1564d51ebf4eb827 100644 --- a/handbook/build/assets/js/9a9e2780.0b00d2bc.js +++ b/handbook/build/assets/js/9a9e2780.77c52640.js @@ -1 +1 @@ -"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[4822],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});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=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(i.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,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(r),h=a,g=d["".concat(i,".").concat(h)]||d[h]||u[h]||o;return r?n.createElement(g,l(l({ref:t},p),{},{components:r})):n.createElement(g,l({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;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 s=2;s{r.d(t,{Z:()=>U});var n=r(7294),a=r(7462);const o=(e,t,r)=>e?"string"==typeof e?e:e[t]||r:r,l={display:"block"},c=e=>{let{size:t,color:r,style:c,...i}=e;const s=c?{...l,...c}:l;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:s},i),n.createElement("path",{d:"M856.4 292.8c-63.3-63.6-126.6-127.1-190.2-190.3-15.3-15.2-32.7-16.1-48.1-0.8-64.3 63.6-128.1 127.6-191.8 191.9-14 14.2-16.3 31.6-1.7 46 14.8 14.7 31.5 10.6 46.1-2.7 5.1-4.6 9.8-9.7 14.7-14.7 39.2-39.7 78.5-79.5 122.8-124.4 0 170 3 332.2-1.1 494-2.4 96.4-91.2 174.6-187.4 176.6-110.6 2.3-198.6-84.4-199-197.4-0.6-136.3-0.2-272.6-0.1-408.9 0-21.8-7.9-37.4-31.2-39.9-18.9-2-33.2 13.2-33.1 37.5 0 145.8-3.4 291.7 2.4 437.2 6 152.1 160.4 263.5 309.5 230.5C591.8 900 672.8 797.2 673.6 664.6c0.8-144 0.2-288.1 0.2-432.1v-33.3c11.2 10.2 17.6 15.4 23.3 21.3 38.5 38.4 76.7 77 115.3 115.2 14.8 14.6 32.2 19.2 47.8 2.9 13.8-14.8 10.3-31.7-3.8-45.8z",fill:o(r,0,"#333333")}))};c.defaultProps={size:18};const i=c,s={display:"block"},p=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...s,...l}:s;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M143.872 768a51.2 51.2 0 0 1-15.36-2.56 51.2 51.2 0 0 1-35.328-51.2V283.136a148.992 148.992 0 0 1 141.824-153.6h450.56a148.992 148.992 0 0 1 141.824 153.6V512a148.992 148.992 0 0 1-141.824 153.6H244.224l-60.928 80.896a51.2 51.2 0 0 1-39.424 21.504zM235.008 180.224a97.792 97.792 0 0 0-90.624 102.4v430.592L218.624 614.4h466.944a97.792 97.792 0 0 0 90.624-102.4V283.136a97.792 97.792 0 0 0-90.624-102.4z",fill:o(r,0,"#333333")}),n.createElement("path",{d:"M880.128 875.52a51.2 51.2 0 0 1-39.424-20.48l-60.928-80.896h-243.2a25.6 25.6 0 0 1 0-51.2h268.8l76.288 102.4v-295.936a25.6 25.6 0 0 1 25.6-25.6 25.6 25.6 0 0 1 25.6 25.6v293.888a51.2 51.2 0 0 1-51.2 51.2z",fill:o(r,1,"#333333")}))};p.defaultProps={size:18};const u=p,d={display:"block"},h=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...d,...l}:d;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M223.425605 449.2744l161.632237 0 0 253.65714c0 16.954137 13.745049 30.699186 30.699186 30.699186 16.95516 0 30.699186-13.745049 30.699186-30.699186l0-284.356326c0-16.95516-13.744026-30.699186-30.699186-30.699186L291.035446 387.876028l217.23665-248.51605L733.039255 387.580293 607.104031 387.580293c-16.954137 0-30.699186 13.745049-30.699186 30.699186l0 284.652062c0 16.954137 13.745049 30.699186 30.699186 30.699186s30.699186-13.745049 30.699186-30.699186L637.803217 448.978664l164.448376 0c12.140505 0 23.140023-7.154957 28.063149-18.251689 4.922103-11.097756 2.841721-24.053835-5.307889-33.05279L530.62315 72.570829c-5.881964-6.495948-14.273075-10.134825-23.024389-10.091846-8.763594 0.076748-17.076934 3.895727-22.844288 10.494005L200.312188 398.371056c-7.92653 9.067516-9.818623 21.931498-4.839215 32.896224S211.383338 449.2744 223.425605 449.2744z",fill:o(r,0,"#333333")}),n.createElement("path",{d:"M222.354204 829.113381l581.732178 0c16.954137 0 30.699186-13.745049 30.699186-30.699186s-13.745049-30.699186-30.699186-30.699186L222.354204 767.715009c-16.954137 0-30.699186 13.745049-30.699186 30.699186S205.400067 829.113381 222.354204 829.113381z",fill:o(r,1,"#333333")}),n.createElement("path",{d:"M804.086381 896.729361 222.354204 896.729361c-16.954137 0-30.699186 13.745049-30.699186 30.699186s13.745049 30.699186 30.699186 30.699186l581.732178 0c16.954137 0 30.699186-13.745049 30.699186-30.699186S821.041542 896.729361 804.086381 896.729361z",fill:o(r,2,"#333333")}))};h.defaultProps={size:18};const g=h,m={display:"block"},v=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...m,...l}:m;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M380.15463648 874.54223633c0 18.12744166-14.83154297 32.95898463-32.95898463 32.95898463s-32.95898463-14.83154297-32.95898462-32.95898463V228.9152832L172.71078883 370.86962865a33.04467773 33.04467773 0 0 1-46.60400416 0 33.04467773 33.04467773 0 0 1 0-46.6040034l197.55615234-198.14941406A32.76782227 32.76782227 0 0 1 347.0967749 116.52514674c0.03295924 0 0.06591772-0.03295924 0.09887695-0.03295924 1.54907201 0 2.90039088 0.69213867 4.41650366 0.88989258 2.66967773 0.39550781 5.40527318 0.59326172 7.94311548 1.61499049 12.03002904 4.94384766 20.59936549 16.71020508 20.59936549 30.45410156v725.0910642z m320.15698192 23.34155248a32.85351537 32.85351537 0 0 1-23.43383789 9.59106445c-0.03295924 0-0.06591772 0.03295924-0.09887696 0.03295924-1.54907201 0-2.90039088-0.69213867-4.41650365-0.92285182-2.70263697-0.36254857-5.40527318-0.56030248-7.94311549-1.61498972-12.03002904-4.91088842-20.59936549-16.67724584-20.59936473-30.42114309V149.45776367c0-18.12744166 14.83154297-32.95898463 32.95898387-32.95898463s32.95898463 14.83154297 32.95898463 32.95898463v645.60058619l141.52587916-141.92138697c12.81445313-12.82104467 33.81591797-12.82104467 46.63037109 0 12.78808619 12.81445313 12.78808619 33.77636719 0 46.60400416L700.3116184 897.88378881z",fill:o(r,0,"#333333")}))};v.defaultProps={size:18};const k=v,y={display:"block"},f=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...y,...l}:y;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1172 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M870.0416 250.4704a38.4 38.4 0 0 0-8.96 53.5552c13.056 18.2784 24.4224 37.8368 33.7408 58.112a38.4512 38.4512 0 0 0 50.944 18.8928 38.4512 38.4512 0 0 0 18.8416-50.944 436.0192 436.0192 0 0 0-40.96-70.6048 38.3488 38.3488 0 0 0-53.6064-9.0112zM181.4528 566.016a35.9936 35.9936 0 0 0 25.5488-10.5984L351.7952 410.624a36.096 36.096 0 1 0-51.0976-51.0976L217.6 442.5728C250.0096 278.1184 395.264 153.6 569.1392 153.6c50.7904 0 99.8912 10.3936 145.92 30.9248a38.4 38.4 0 1 0 31.232-70.0928 431.36 431.36 0 0 0-177.152-37.632c-214.6816 0-393.1136 156.416-428.4416 361.216L62.1568 359.4752a36.1984 36.1984 0 0 0-51.0976 51.0976l144.8448 144.7936a36.0448 36.0448 0 0 0 25.5488 10.6496zM978.5344 463.104a36.1984 36.1984 0 0 0-51.0976 0l-144.8448 144.7936a36.096 36.096 0 1 0 51.0976 51.0976l88.6272-88.576C894.3104 740.2496 746.8032 870.4 569.1392 870.4a357.7856 357.7856 0 0 1-325.2736-207.7184 38.4 38.4 0 1 0-69.7344 32.3072 434.3808 434.3808 0 0 0 394.9568 252.2112c215.1936 0 393.984-157.184 428.6464-362.7008l74.496 74.496a35.9936 35.9936 0 0 0 51.0976 0 36.096 36.096 0 0 0 0-51.0976l-144.7936-144.7936z",fill:o(r,0,"#333333")}))};f.defaultProps={size:18};const b=f,x={display:"block"},C=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...x,...l}:x;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M302 332a30 30 0 1 1 0-60h420a30 30 0 0 1 0 60H302zM302 542a30 30 0 0 1 0-60h420a30 30 0 0 1 0 60H302zM302 752a30 30 0 0 1 0-60h120a30 30 0 0 1 0 60H302z",fill:o(r,0,"#333333")}),n.createElement("path",{d:"M789.47 784.1a30 30 0 0 1 39.36 45.3l-144.24 125.25a30 30 0 0 1-19.68 7.35H214.85C163.4 962 122 919.46 122 867.38V156.62C122 104.54 163.4 62 214.85 62h594.3C860.6 62 902 104.54 902 156.62v529.05a30 30 0 1 1-60 0V156.62C842 137.3 827.09 122 809.15 122H214.85C196.91 122 182 137.3 182 156.62v710.76C182 886.7 196.91 902 214.85 902h438.84l135.78-117.9z",fill:o(r,1,"#333333")}),n.createElement("path",{d:"M692 931.19a30 30 0 1 1-60 0v-174.6C632 704.57 673.4 662 724.85 662h147.78a30 30 0 0 1 0 60h-147.78c-17.94 0-32.85 15.3-32.85 34.62v174.6z",fill:o(r,2,"#333333")}))};C.defaultProps={size:18};const E=C,M={display:"block"},R=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...M,...l}:M;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M512 883.2A371.2 371.2 0 1 0 140.8 512 371.2 371.2 0 0 0 512 883.2z m0 64a435.2 435.2 0 1 1 435.2-435.2 435.2 435.2 0 0 1-435.2 435.2z",fill:o(r,0,"#333333")}),n.createElement("path",{d:"M557.056 512l122.368 122.368a31.744 31.744 0 1 1-45.056 45.056L512 557.056l-122.368 122.368a31.744 31.744 0 1 1-45.056-45.056L466.944 512 344.576 389.632a31.744 31.744 0 1 1 45.056-45.056L512 466.944l122.368-122.368a31.744 31.744 0 1 1 45.056 45.056z",fill:o(r,1,"#333333")}))};R.defaultProps={size:18};const z=R,w={display:"block"},N=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...w,...l}:w;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5 0.2 13 0.7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2c41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7 0.4-6.4 0.7-12.8 0.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3-20.1 11.8-42 20-64.9 24.3V484c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v396.5c-22.9-4.3-44.8-12.5-64.9-24.3-30.3-17.7-55.6-43-73.3-73.3C317.7 752 308 716.8 308 680V412h408v268z",fill:o(r,0,"#333333")}),n.createElement("path",{d:"M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z",fill:o(r,1,"#333333")}))};N.defaultProps={size:18};const I=N,L={display:"block"},P=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...L,...l}:L;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M512 71.68c-242.688 0-440.32 197.632-440.32 440.32s197.632 440.32 440.32 440.32 440.32-197.632 440.32-440.32-197.632-440.32-440.32-440.32z m0 819.2c-208.896 0-378.88-169.984-378.88-378.88s169.984-378.88 378.88-378.88 378.88 169.984 378.88 378.88-169.984 378.88-378.88 378.88z",fill:o(r,0,"#333333")}),n.createElement("path",{d:"M542.72 261.12H481.28v220.16H261.12v61.44h220.16v220.16h61.44v-220.16h220.16V481.28h-220.16z",fill:o(r,1,"#333333")}))};P.defaultProps={size:18};const G=P,A={display:"block"},S=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...A,...l}:A;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M384 896h-64v-70.4c0-15.2-10.4-28-24.8-31.2C159.2 768 64 644.8 64 496v-32h64v32c0 118.4 73.6 215.2 179.2 236 44.8 8.8 76.8 48 76.8 94.4v69.6zM704 896h-64v-70.4c0-45.6 32-85.6 76.8-94.4C822.4 711.2 896 614.4 896 496v-32h64v32c0 148.8-95.2 272-231.2 298.4-14.4 3.2-24.8 16-24.8 31.2v70.4zM512.8 640l-41.6-37.6c-147.2-133.6-244-208-244-316.8 0-88 68.8-156.8 156.8-156.8 49.6 0 97.6 23.2 128.8 60C544 152 592 128.8 641.6 128.8c88 0 156.8 68.8 156.8 156.8 0 108-96.8 183.2-244 316.8L512.8 640z",fill:o(r,0,"#333333")}))};S.defaultProps={size:18};const T=S,O={display:"block"},B=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...O,...l}:O;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M942.4615936 284.62787926c-14.30911886-14.12709945-37.31996786-14.05468217-51.48229632 0.21920654L517.97142983 661.27810333 139.75544149 286.45003606c-14.30911886-14.16232846-37.31996786-14.05468217-51.51948344 0.21920654-14.16232846 14.30911886-14.05468217 37.35519687 0.21920654 51.51948345l401.99014627 398.34974663c0.61847666 0.61847666 1.41897273 0.76526706 2.03940637 1.34655658 0.14483342 0.14483342 0.18201941 0.32685283 0.32685283 0.47364324 7.09877874 7.02636259 16.38375538 10.55911595 25.63154489 10.55911595 9.35739278 0 18.75001458-3.60516949 25.85075143-10.77636551l398.34974663-401.99014628C956.84312974 321.8382427 956.73548345 298.7921647 942.4615936 284.62787926z",fill:o(r,0,"#333333")}))};B.defaultProps={size:18};const F=B,j={display:"block"},Z=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...j,...l}:j;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M81.5384064 739.37212074c14.30911886 14.12709945 37.31996786 14.05468217 51.48229632-0.21920654L506.02857017 362.72189667 884.24455851 737.54996394c14.30911886 14.16232846 37.31996786 14.05468217 51.51948344-0.21920654 14.16232846-14.30911886 14.05468217-37.35519687-0.21920654-51.51948345l-401.99014627-398.34974663c-0.61847666-0.61847666-1.41897273-0.76526706-2.03940637-1.34655658-0.14483342-0.14483342-0.18201941-0.32685283-0.32685282-0.47364324-7.09877874-7.02636259-16.38375538-10.55911595-25.6315449-10.55911595-9.35739278 0-18.75001458 3.60516949-25.85075143 10.77636551l-398.34974663 401.99014628C67.15687026 702.1617573 67.26451655 725.2078353 81.5384064 739.37212074z",fill:o(r,0,"#333333")}))};Z.defaultProps={size:18};const D=Z,q=e=>{let{name:t,...r}=e;switch(t){case"youhua":return n.createElement(i,r);case"dayi":return n.createElement(u,r);case"shengji":return n.createElement(g,r);case"tiaozheng":return n.createElement(k,r);case"gengxin":return n.createElement(b,r);case"wendang":return n.createElement(E,r);case"shanchu":return n.createElement(z,r);case"bug":return n.createElement(I,r);case"xinzeng":return n.createElement(G,r);case"fuwu":return n.createElement(T,r);case"down":return n.createElement(F,r);case"up":return n.createElement(D,r)}return null},H="label_p8vM",V="icon_knQK";function U(e){const{children:t}=e,r={"\u65b0\u589e":{icon:"xinzeng",bgColor:"#39b54a"},"\u4fee\u590d":{icon:"bug",bgColor:"#9c26b0"},"\u6587\u6863":{icon:"wendang",bgColor:"rgb(79, 147, 255)"},"\u66f4\u65b0":{icon:"gengxin",bgColor:"#0081ff"},"\u8c03\u6574":{icon:"tiaozheng",bgColor:"#333"},"\u5347\u7ea7":{icon:"shengji",bgColor:"#e03997"},"\u79fb\u9664":{icon:"shanchu",bgColor:"#666"},"\u7b54\u7591":{icon:"dayi",bgColor:"#bbb"},"\u4f18\u5316":{icon:"youhua",bgColor:"#38e550"},"\u63a8\u8350":{bgColor:"#38e550"},"\u4f01\u4e1a\u7248":{bgColor:"#23AAF2"}};return n.createElement("label",{className:H,title:t,style:{backgroundColor:r[t].bgColor}},n.createElement(q,{name:r[t].icon,color:"white",size:14,className:V})," ",t)}},6859:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(7462),a=(r(7294),r(3905)),o=r(510);const l={id:"generateproxyfromsourcegenerator",title:"\u4eceSourceGenerator\u83b7\u53d6\u4ee3\u7406"},c=void 0,i={unversionedId:"generateproxyfromsourcegenerator",id:"generateproxyfromsourcegenerator",title:"\u4eceSourceGenerator\u83b7\u53d6\u4ee3\u7406",description:"\u4e00\u3001\u751f\u6210\u4ee3\u7406 \u4f01\u4e1a\u7248",source:"@site/docs/generateproxyfromsourcegenerator.mdx",sourceDirName:".",slug:"/generateproxyfromsourcegenerator",permalink:"/touchsocket/docs/generateproxyfromsourcegenerator",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/generateproxyfromsourcegenerator.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1676511805,formattedLastUpdatedAt:"Feb 16, 2023",frontMatter:{id:"generateproxyfromsourcegenerator",title:"\u4eceSourceGenerator\u83b7\u53d6\u4ee3\u7406"},sidebar:"docs",previous:{title:"\u4ece\u670d\u52a1\u7aef\u751f\u6210\u4ee3\u7406",permalink:"/touchsocket/docs/generateproxyfromserver"},next:{title:"SG\u4ee3\u7406\u63a8\u8350\u5199\u6cd5",permalink:"/touchsocket/docs/generateproxysourcegeneratordemo"}},s={},p=[{value:"\u4e00\u3001\u751f\u6210\u4ee3\u7406 \u4f01\u4e1a\u7248",id:"\u4e00\u751f\u6210\u4ee3\u7406-\u4f01\u4e1a\u7248",level:2},{value:"\u4e8c\u3001\u751f\u6210\u914d\u7f6e",id:"\u4e8c\u751f\u6210\u914d\u7f6e",level:2},{value:"2.1 GeneratorRpcProxyAttribute\u914d\u7f6e",id:"21-generatorrpcproxyattribute\u914d\u7f6e",level:3},{value:"\uff081\uff09Prefix",id:"1prefix",level:4},{value:"\uff082\uff09GenericConstraintTypes",id:"2genericconstrainttypes",level:4},{value:"\uff083\uff09MethodInvoke",id:"3methodinvoke",level:4},{value:"\uff084\uff09 Namespace",id:"4-namespace",level:4},{value:"\uff085\uff09ClassName",id:"5classname",level:4},{value:"\uff086\uff09GeneratorFlag",id:"6generatorflag",level:4},{value:"\uff087\uff09 MethodFlags",id:"7-methodflags",level:4},{value:"\uff088\uff09 InheritedInterface",id:"8-inheritedinterface",level:4},{value:"2.2 GeneratorRpcMethodAttribute\u914d\u7f6e",id:"22-generatorrpcmethodattribute\u914d\u7f6e",level:3},{value:"\uff081\uff09GenericConstraintTypes",id:"1genericconstrainttypes",level:4},{value:"\uff082\uff09GeneratorFlag",id:"2generatorflag",level:4},{value:"\uff083\uff09MethodInvoke",id:"3methodinvoke-1",level:4},{value:"\uff084\uff09MethodFlags",id:"4methodflags",level:4},{value:"\uff085\uff09InvokeKey",id:"5invokekey",level:4},{value:"\uff086\uff09MethodName",id:"6methodname",level:4}],u={toc:p};function d(e){let{components:t,...l}=e;return(0,a.kt)("wrapper",(0,n.Z)({},u,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u751f\u6210\u4ee3\u7406-\u4f01\u4e1a\u7248"},"\u4e00\u3001\u751f\u6210\u4ee3\u7406 ",(0,a.kt)(o.Z,{mdxType:"Tag"},"\u4f01\u4e1a\u7248")),(0,a.kt)("p",null,"\u5bf9\u4e8e\u6e90\u4ee3\u7801\u751f\u6210\u4ee3\u7406\u6765\u8bf4\uff0c\u4ed6\u53ef\u4ee5\u4ec5\u51ed\u4e00\u4e2a\u63a5\u53e3\uff0c\u81ea\u5df1\u751f\u6210\u4ee3\u7406\u670d\u52a1\u4ee3\u7801\uff0c\u7136\u540e\u518d\u7f16\u8bd1\u5230\u5f53\u524d\u7a0b\u5e8f\u96c6\u4e2d\u3002"),(0,a.kt)("p",null,"\u4f8b\u5982\uff1a\u5bf9\u4e8e\u4e0b\u5217\u670d\u52a1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyRpcServer : RpcServer\n{\n [TouchRpc]\n public bool Login(string account, string password)\n {\n if (account == "123" && password == "abc")\n {\n return true;\n }\n\n return false;\n }\n}\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public interface IMyRpcServer\n{\n public bool Login(string account, string password);\n}\n")),(0,a.kt)("p",null,"\u6211\u4eec\u9700\u8981\u8bbe\u7f6e\u63a5\u53e3\uff0c\u5982\u4e0b\uff1a"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'/// \n/// GeneratorRpcProxy\u7684\u6807\u8bc6\uff0c\u8868\u660e\u8fd9\u4e2a\u63a5\u53e3\u5e94\u8be5\u88ab\u751f\u6210\u5176\u4ed6\u6e90\u4ee3\u7801\u3002\n/// ConsoleApp2.MyRpcServer\u53c2\u6570\u662f\u6574\u4e2arpc\u8c03\u7528\u7684\u524d\u7f00\uff0c\u5373\uff1a\u9664\u65b9\u6cd5\u540d\u7684\u6240\u6709\uff0c\u5305\u62ec\u670d\u52a1\u7684\u7c7b\u540d\u3002\n/// \n[GeneratorRpcProxy(Prefix = "GeneratorRpcProxyConsoleApp.MyRpcServer")]//\u6b64\u5904\u8fd8\u53ef\u4ee5\u8bbe\u7f6e\u5176\u4ed6\u53c2\u6570\uff0c\u4f8b\u5982\uff1a\u751f\u6210\u4ee3\u7406\u7684\u547d\u540d\u7a7a\u95f4\uff0c\u662f\u5426\u751f\u6210\u63a5\u53e3\u7b49\u3002\u5177\u4f53f12\u67e5\u770b\u3002\ninterface IMyRpcServer\n{\n [Description("\u8fd9\u662f\u767b\u5f55\u65b9\u6cd5")]//\u8be5\u4f5c\u7528\u662f\u751f\u6210\u6ce8\u91ca\n [GeneratorRpcMethod]//\u8868\u9762\u8be5\u65b9\u6cd5\u5e94\u8be5\u88ab\u4ee3\u7406\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u53c2\u6570\uff0c\u76f4\u63a5\u8bbe\u7f6e\u8c03\u7528\u952e\n public bool Login(string account, string password);\n}\n')),(0,a.kt)("p",null,"\u8fd9\u65f6\u5019\uff0c\u795e\u5947\u7684\u4e00\u5e55\u53d1\u751f\u4e86\uff0c\u51e1\u662f\u5b9e\u73b0",(0,a.kt)("strong",{parentName:"p"},"IRpcClient"),"\u7684\u63a5\u53e3\u7684\u5b9e\u4f8b\uff0c\u90fd\u589e\u52a0\u4e86\u6269\u5c55\u65b9\u6cd5\u3002\u800c\u8fd9\u529f\u80fd\uff0c\u548c\u670d\u52a1\u5668\u751f\u6210\u7684\u6269\u5c55Rpc\u65b9\u6cd5\u7684\u529f\u80fd\u662f\u4e00\u81f4\u7684\u3002"),(0,a.kt)("p",null,(0,a.kt)("img",{src:r(5379).Z,width:"927",height:"144"})),(0,a.kt)("admonition",{title:"\u8bf4\u660e",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"\u751f\u6210\u7684\u6269\u5c55\u65b9\u6cd5\u7684\u7c7b\u540d\uff0c\u5c31\u662f",(0,a.kt)("strong",{parentName:"p"},"\u63a5\u53e3\u540d+Extensions"),"\uff0c\u547d\u540d\u7a7a\u95f4\u9ed8\u8ba4\u5728",(0,a.kt)("strong",{parentName:"p"},"TouchSocket.Rpc.Generators"),"\u4e0b\uff0c\u6240\u4ee5\u53ef\u80fd\u9700\u8981\u63d0\u524dusing\u3002")),(0,a.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u4e0a\u8ff0\u529f\u80fd\u9700\u8981\u518d\u5b89\u88c5",(0,a.kt)("a",{parentName:"p",href:"https://www.nuget.org/packages/TouchSocketPro.CodeAnalyzer"},"TouchSocketPro.CodeAnalyzer"),"\uff0c\u8be5\u64cd\u4f5c\u4e0d\u4f1a\u4ea7\u751fDLL\u4f9d\u8d56\u3002")),(0,a.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u5927\u5bb6\u53ef\u80fd\u4f1a\u7591\u95ee\uff0c\u6e90\u4ee3\u7801\u751f\u6210\u4ee3\u7406\uff0c\u548c\u670d\u52a1\u7aef\u751f\u6210\u4ee3\u7406\uff0c\u6709\u4ec0\u4e48\u533a\u522b\uff1f\u6216\u8005\u8bf4\u6709\u4ec0\u4e48\u4f18\u70b9\uff1f\n\u5b9e\u9645\u4e0a\u6ca1\u6709\u533a\u522b\uff0c\u4f18\u70b9\u6700\u540e\u4f1a\u5bf9\u6bd4\u3002\u4e4b\u6240\u4ee5\u8bbe\u8ba1\u8fd9\u4e2a\uff0c\u662f\u56e0\u4e3a\u4e4b\u524d\u6709\u4eba\u63d0\u8fc7\u9700\u6c42\uff0c\u60f3\u8981\u5b8c\u5168\u5206\u79bb\u524d\u3001\u540e\u7aef\u3002\u5373\uff1a\u540e\u7aef\u5199\u597d\u670d\u52a1\u540e\uff0c\u524d\u7aef\u81ea\u7531\u5b9a\u4e49\u670d\u52a1\u63a5\u53e3\uff0c\u548c\u8c03\u7528\u53c2\u6570\uff0c\u4ec5\u6b64\u800c\u5df2\u3002"),(0,a.kt)("p",{parentName:"admonition"},"\u6240\u4ee5\uff0c\u751f\u6210\u4ee3\u7406\u7684\u65b9\u5f0f\uff0c\u6309\u7167\u5927\u5bb6\u7684\u4e60\u60ef\u9700\u6c42\u9009\u62e9\u5c31\u53ef\u4ee5\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/%E6%BA%90%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E4%BB%A3%E7%90%86/GeneratorRpcProxyConsoleApp"},"\u6e90\u4ee3\u7801\u751f\u6210\u4ee3\u7406\u793a\u4f8b\u4ee3\u7801")),(0,a.kt)("h2",{id:"\u4e8c\u751f\u6210\u914d\u7f6e"},"\u4e8c\u3001\u751f\u6210\u914d\u7f6e"),(0,a.kt)("h3",{id:"21-generatorrpcproxyattribute\u914d\u7f6e"},"2.1 GeneratorRpcProxyAttribute\u914d\u7f6e"),(0,a.kt)("p",null,"GeneratorRpcProxyAttribute\u7684\u914d\u7f6e\uff0c\u662f\u5bf9\u6574\u4e2a\u63a5\u53e3\u7684\u603b\u4f53\u914d\u7f6e\uff0c\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u7279\u6027\u540d\u79f0"),"\u76f4\u63a5\u914d\u7f6e\u5373\u53ef\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{1}","{1}":!0},'[GeneratorRpcProxy(Prefix = "RpcClassLibrary")]\npublic interface IUserServer:IRpcServer\n{\n [GeneratorRpcMethod]\n [TouchRpc]\n LoginResponse Login(LoginRequest request);\n}\n')),(0,a.kt)("p",null,"\u53ef\u914d\u7f6e\u9879\uff1a"),(0,a.kt)("h4",{id:"1prefix"},"\uff081\uff09Prefix"),(0,a.kt)("p",null,"\u8c03\u7528\u524d\u7f00\u3002\u7528\u4e8e\u914d\u7f6e\u63a5\u53e3\u65b9\u6cd5\u7684\u8c03\u7528\u952e\u524d\u7f00\uff0c\u5e94\u5305\u62ec",(0,a.kt)("strong",{parentName:"p"},"\u547d\u540d\u7a7a\u95f4"),"\u548c",(0,a.kt)("strong",{parentName:"p"},"\u7c7b\u540d"),"\uff0c\u65b9\u6cd5\u540d\u4f1a\u81ea\u52a8\u7ec4\u5408\uff0c\u4e0d\u533a\u5206\u5927\u5c0f\u5199\u3002"),(0,a.kt)("h4",{id:"2genericconstrainttypes"},"\uff082\uff09GenericConstraintTypes"),(0,a.kt)("p",null,"\u6cdb\u578b\u7ea6\u675f\u7c7b\u578b\u3002\u7528\u4e8e\u7ea6\u675f\u751f\u6210\u4ee3\u7406\u7684\u6cdb\u578b\u7c7b\u578b\uff0c\u4ece\u800c\u8ba9\u751f\u6210\u7684\u6269\u5c55\u65b9\u6cd5\u53ea\u80fd\u8ba9\u7279\u5b9a\u7684\u7c7b\u578b\u6267\u884c\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u53ea\u4f1a\u7ea6\u675f",(0,a.kt)("strong",{parentName:"p"},"IRpcClient"),"\u63a5\u53e3\u3002"),(0,a.kt)("p",null,"\u4f8b\u5982\uff1a"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{2}","{2}":!0},'public static LoginResponse Login(this TClient client,LoginRequest request,IInvokeOption invokeOption = default) \nwhere TClient:IRpcClient\n{\n if (client.TryCanInvoke?.Invoke(client)==false)\n {\n throw new RpcException("Rpc\u65e0\u6cd5\u6267\u884c\u3002");\n }\n object[] parameters = new object[]{request};\n RpcClassLibrary.Models.LoginResponse returnData=client.Invoke("rpcclasslibrary.login",invokeOption, parameters);\n return returnData;\n}\n')),(0,a.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"\u6cdb\u578b\u7ea6\u675f\u7684\u603b\u548c\uff0c\u5fc5\u987b\u76f4\u63a5\u6216\u95f4\u63a5\u5b9e\u73b0",(0,a.kt)("strong",{parentName:"p"},"IRpcClient"),"\u63a5\u53e3\u3002")),(0,a.kt)("h4",{id:"3methodinvoke"},"\uff083\uff09MethodInvoke"),(0,a.kt)("p",null,"\u8868\u793a\u63a5\u53e3\u7684\u6240\u6709\u65b9\u6cd5\uff0c\u5747\u4ec5\u901a\u8fc7\u65b9\u6cd5\u540d\u8c03\u7528\uff0c\u4e5f\u5c31\u662f\u76f4\u63a5\u4f1a\u5c06\u65b9\u6cd5\u540d\u8bbe\u7f6e\u4e3a\u8c03\u7528\u952e\uff0c\u533a\u522b\u5927\u5c0f\u5199\u3002"),(0,a.kt)("h4",{id:"4-namespace"},"\uff084\uff09 Namespace"),(0,a.kt)("p",null,"\u8868\u793a\u751f\u6210\u63a5\u53e3\uff0c\u6269\u5c55\u7c7b\u7684\u547d\u540d\u7a7a\u95f4\u3002\u9ed8\u8ba4\u662f",(0,a.kt)("strong",{parentName:"p"},"TouchSocket.Rpc.Generators"),"\u3002"),(0,a.kt)("h4",{id:"5classname"},"\uff085\uff09ClassName"),(0,a.kt)("p",null,"\u8868\u793a\u751f\u6210\u63a5\u53e3\uff0c\u6269\u5c55\u7c7b\u7684\u57fa\u7840\u540d\u79f0\uff0c\u4f8b\u5982\u8bbe\u4e3aA\uff0c\u5219\u751f\u6210\u7684\u63a5\u53e3\u662fIA\uff0c\u6269\u5c55\u7c7b\u662fAExtensions\u3002\u9ed8\u8ba4\u662f",(0,a.kt)("strong",{parentName:"p"},"\u58f0\u660e\u63a5\u53e3\u7684\u540d\u79f0"),"\uff08\u9664\u53bb\u201cI\u201d\uff09\u3002"),(0,a.kt)("h4",{id:"6generatorflag"},"\uff086\uff09GeneratorFlag"),(0,a.kt)("p",null,"\u751f\u6210\u6807\u8bc6\uff0c\u53ef\u8868\u793a\u662f\u5426\u751f\u6210\u540c\u6b65\u4ee3\u7801\uff0c\u6216\u5f02\u6b65\uff0c\u6216\u4e0d\u751f\u6210\u63a5\u53e3\u7b49\u7b49\u3002"),(0,a.kt)("p",null,"\u4f8b\u5982\uff1a\u4e0b\u5217\u793a\u4f8b\uff0c\u53ea\u4f1a\u751f\u6210",(0,a.kt)("strong",{parentName:"p"},"\u5f02\u6b65\u6269\u5c55"),"\u8c03\u7528\uff0c\u548c",(0,a.kt)("strong",{parentName:"p"},"\u5f02\u6b65\u63a5\u53e3"),"\u4ee3\u7801\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{1}","{1}":!0},"[GeneratorRpcProxy(GeneratorFlag = CodeGeneratorFlag.ExtensionAsync| CodeGeneratorFlag.InterfaceAsync)]\npublic interface IUserServer:IRpcServer\n{\n [GeneratorRpcMethod]\n [TouchRpc]\n LoginResponse Login(LoginRequest request);\n}\n")),(0,a.kt)("h4",{id:"7-methodflags"},"\uff087\uff09 MethodFlags"),(0,a.kt)("p",null,"\u51fd\u6570\u6807\u8bc6\uff0c\u53ef\u4ee5\u58f0\u660e\u8be5\u51fd\u6570\u652f\u6301\u8c03\u7528\u4e0a\u4e0b\u6587\uff0c\u5373\u5728\u751f\u6210\u4ee3\u7406\u65f6\uff0c\u4f1a\u5ffd\u7565\u7b2c\u4e00\u4e2a\u53c2\u6570\u9879\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{1,6}","{1,6}":!0},"[GeneratorRpcProxy(MethodFlags = MethodFlags.IncludeCallContext)]\npublic interface IUserServer:IRpcServer\n{\n [GeneratorRpcMethod]\n [TouchRpc]\n LoginResponse Login(ICallContext callContext,LoginRequest request);\n}\n")),(0,a.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u8be5\u573a\u666f\u7684\u4f7f\u7528\uff0c\u4e00\u822c\u662f\uff0c\u8be5\u63a5\u53e3\u4f1a\u4f5c\u4e3a",(0,a.kt)("strong",{parentName:"p"},"\u670d\u52a1\u5b9e\u73b0"),"\u63a5\u53e3\u3002")),(0,a.kt)("h4",{id:"8-inheritedinterface"},"\uff088\uff09 InheritedInterface"),(0,a.kt)("p",null,"\u7ee7\u627f\u63a5\u53e3\uff0c\u6807\u8bc6\u751f\u6210\u63a5\u53e3\u4ee3\u7406\u65f6\uff0c\u662f\u5426\u4f9d\u7136\u4fdd\u6301\u5176\u4ed6\u63a5\u53e3\u7684\u7ee7\u627f\u5b9e\u73b0\u3002"),(0,a.kt)("p",null,"\u4f8b\u5982\uff1a\u4e0b\u5217\u793a\u4f8b\u4e2d\uff0cA\u63a5\u53e3\u7ee7\u627f\u4e86IRpcServer\uff08\u5916\u90e8\u63a5\u53e3\uff09\uff0c\u800cB\u548c\u63a5\u53e3\u53c8\u7ee7\u627f\u4e86A\uff0c\u6240\u4ee5\u5168\u90e8\u8bbe\u7f6e\u4e3atrue\u65f6\uff0c\u5728\u751f\u6210\u63a5\u53e3\u4e2d\uff0c\u4f9d\u7136\u4f1a\u4fdd\u6301\u6574\u4e2a\u7ee7\u627f\u94fe\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{1,7}","{1,7}":!0},"[GeneratorRpcProxy(InheritedInterface =true)]\npublic interface IA:IRpcServer\n{\n \n}\n\n[GeneratorRpcProxy(InheritedInterface =true)]\npublic interface IB:IA\n{\n \n}\n\n")),(0,a.kt)("h3",{id:"22-generatorrpcmethodattribute\u914d\u7f6e"},"2.2 GeneratorRpcMethodAttribute\u914d\u7f6e"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{4}","{4}":!0},"[GeneratorRpcProxy(MethodFlags = MethodFlags.IncludeCallContext)]\npublic interface IUserServer:IRpcServer\n{\n [GeneratorRpcMethod(MethodFlags = MethodFlags.IncludeCallContext)]\n LoginResponse Login(ICallContext callContext,LoginRequest request);\n}\n")),(0,a.kt)("p",null,"\u53ef\u914d\u7f6e\u9879\uff1a"),(0,a.kt)("h4",{id:"1genericconstrainttypes"},"\uff081\uff09GenericConstraintTypes"),(0,a.kt)("h4",{id:"2generatorflag"},"\uff082\uff09GeneratorFlag"),(0,a.kt)("h4",{id:"3methodinvoke-1"},"\uff083\uff09MethodInvoke"),(0,a.kt)("h4",{id:"4methodflags"},"\uff084\uff09MethodFlags"),(0,a.kt)("admonition",{title:"\u8bf4\u660e",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"\u4ee5\u4e0a\u9879\u76ee\u529f\u80fd\u548c",(0,a.kt)("strong",{parentName:"p"},"GeneratorRpcProxyAttribute"),"\u4e00\u81f4\uff0c\u4f46\u662f\u5f53\u914d\u7f6e\u65f6\uff0c\u4f1a\u4f18\u5148\u751f\u6548\u3002")),(0,a.kt)("h4",{id:"5invokekey"},"\uff085\uff09InvokeKey"),(0,a.kt)("p",null,"\u8c03\u7528\u952e\uff0c\u76f4\u63a5\u751f\u6548\uff0c\u533a\u5206\u5927\u5c0f\u5199\u3002"),(0,a.kt)("h4",{id:"6methodname"},"\uff086\uff09MethodName"),(0,a.kt)("p",null,"\u65b9\u6cd5\u540d\u79f0\uff0c\u53ef\u4ee5\u4fee\u6539\u751f\u6210\u4ee3\u7406\u7684\u65b9\u6cd5\u540d\u3002"))}d.isMDXComponent=!0},5379:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/generateproxy-1-163d930232955088abd9e846f68067d1.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[4822],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>h});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=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(i.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,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(r),h=a,g=d["".concat(i,".").concat(h)]||d[h]||u[h]||o;return r?n.createElement(g,l(l({ref:t},p),{},{components:r})):n.createElement(g,l({ref:t},p))}));function h(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;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 s=2;s{r.d(t,{Z:()=>U});var n=r(7294),a=r(7462);const o=(e,t,r)=>e?"string"==typeof e?e:e[t]||r:r,l={display:"block"},c=e=>{let{size:t,color:r,style:c,...i}=e;const s=c?{...l,...c}:l;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:s},i),n.createElement("path",{d:"M856.4 292.8c-63.3-63.6-126.6-127.1-190.2-190.3-15.3-15.2-32.7-16.1-48.1-0.8-64.3 63.6-128.1 127.6-191.8 191.9-14 14.2-16.3 31.6-1.7 46 14.8 14.7 31.5 10.6 46.1-2.7 5.1-4.6 9.8-9.7 14.7-14.7 39.2-39.7 78.5-79.5 122.8-124.4 0 170 3 332.2-1.1 494-2.4 96.4-91.2 174.6-187.4 176.6-110.6 2.3-198.6-84.4-199-197.4-0.6-136.3-0.2-272.6-0.1-408.9 0-21.8-7.9-37.4-31.2-39.9-18.9-2-33.2 13.2-33.1 37.5 0 145.8-3.4 291.7 2.4 437.2 6 152.1 160.4 263.5 309.5 230.5C591.8 900 672.8 797.2 673.6 664.6c0.8-144 0.2-288.1 0.2-432.1v-33.3c11.2 10.2 17.6 15.4 23.3 21.3 38.5 38.4 76.7 77 115.3 115.2 14.8 14.6 32.2 19.2 47.8 2.9 13.8-14.8 10.3-31.7-3.8-45.8z",fill:o(r,0,"#333333")}))};c.defaultProps={size:18};const i=c,s={display:"block"},p=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...s,...l}:s;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M143.872 768a51.2 51.2 0 0 1-15.36-2.56 51.2 51.2 0 0 1-35.328-51.2V283.136a148.992 148.992 0 0 1 141.824-153.6h450.56a148.992 148.992 0 0 1 141.824 153.6V512a148.992 148.992 0 0 1-141.824 153.6H244.224l-60.928 80.896a51.2 51.2 0 0 1-39.424 21.504zM235.008 180.224a97.792 97.792 0 0 0-90.624 102.4v430.592L218.624 614.4h466.944a97.792 97.792 0 0 0 90.624-102.4V283.136a97.792 97.792 0 0 0-90.624-102.4z",fill:o(r,0,"#333333")}),n.createElement("path",{d:"M880.128 875.52a51.2 51.2 0 0 1-39.424-20.48l-60.928-80.896h-243.2a25.6 25.6 0 0 1 0-51.2h268.8l76.288 102.4v-295.936a25.6 25.6 0 0 1 25.6-25.6 25.6 25.6 0 0 1 25.6 25.6v293.888a51.2 51.2 0 0 1-51.2 51.2z",fill:o(r,1,"#333333")}))};p.defaultProps={size:18};const u=p,d={display:"block"},h=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...d,...l}:d;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M223.425605 449.2744l161.632237 0 0 253.65714c0 16.954137 13.745049 30.699186 30.699186 30.699186 16.95516 0 30.699186-13.745049 30.699186-30.699186l0-284.356326c0-16.95516-13.744026-30.699186-30.699186-30.699186L291.035446 387.876028l217.23665-248.51605L733.039255 387.580293 607.104031 387.580293c-16.954137 0-30.699186 13.745049-30.699186 30.699186l0 284.652062c0 16.954137 13.745049 30.699186 30.699186 30.699186s30.699186-13.745049 30.699186-30.699186L637.803217 448.978664l164.448376 0c12.140505 0 23.140023-7.154957 28.063149-18.251689 4.922103-11.097756 2.841721-24.053835-5.307889-33.05279L530.62315 72.570829c-5.881964-6.495948-14.273075-10.134825-23.024389-10.091846-8.763594 0.076748-17.076934 3.895727-22.844288 10.494005L200.312188 398.371056c-7.92653 9.067516-9.818623 21.931498-4.839215 32.896224S211.383338 449.2744 223.425605 449.2744z",fill:o(r,0,"#333333")}),n.createElement("path",{d:"M222.354204 829.113381l581.732178 0c16.954137 0 30.699186-13.745049 30.699186-30.699186s-13.745049-30.699186-30.699186-30.699186L222.354204 767.715009c-16.954137 0-30.699186 13.745049-30.699186 30.699186S205.400067 829.113381 222.354204 829.113381z",fill:o(r,1,"#333333")}),n.createElement("path",{d:"M804.086381 896.729361 222.354204 896.729361c-16.954137 0-30.699186 13.745049-30.699186 30.699186s13.745049 30.699186 30.699186 30.699186l581.732178 0c16.954137 0 30.699186-13.745049 30.699186-30.699186S821.041542 896.729361 804.086381 896.729361z",fill:o(r,2,"#333333")}))};h.defaultProps={size:18};const g=h,m={display:"block"},v=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...m,...l}:m;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M380.15463648 874.54223633c0 18.12744166-14.83154297 32.95898463-32.95898463 32.95898463s-32.95898463-14.83154297-32.95898462-32.95898463V228.9152832L172.71078883 370.86962865a33.04467773 33.04467773 0 0 1-46.60400416 0 33.04467773 33.04467773 0 0 1 0-46.6040034l197.55615234-198.14941406A32.76782227 32.76782227 0 0 1 347.0967749 116.52514674c0.03295924 0 0.06591772-0.03295924 0.09887695-0.03295924 1.54907201 0 2.90039088 0.69213867 4.41650366 0.88989258 2.66967773 0.39550781 5.40527318 0.59326172 7.94311548 1.61499049 12.03002904 4.94384766 20.59936549 16.71020508 20.59936549 30.45410156v725.0910642z m320.15698192 23.34155248a32.85351537 32.85351537 0 0 1-23.43383789 9.59106445c-0.03295924 0-0.06591772 0.03295924-0.09887696 0.03295924-1.54907201 0-2.90039088-0.69213867-4.41650365-0.92285182-2.70263697-0.36254857-5.40527318-0.56030248-7.94311549-1.61498972-12.03002904-4.91088842-20.59936549-16.67724584-20.59936473-30.42114309V149.45776367c0-18.12744166 14.83154297-32.95898463 32.95898387-32.95898463s32.95898463 14.83154297 32.95898463 32.95898463v645.60058619l141.52587916-141.92138697c12.81445313-12.82104467 33.81591797-12.82104467 46.63037109 0 12.78808619 12.81445313 12.78808619 33.77636719 0 46.60400416L700.3116184 897.88378881z",fill:o(r,0,"#333333")}))};v.defaultProps={size:18};const k=v,y={display:"block"},f=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...y,...l}:y;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1172 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M870.0416 250.4704a38.4 38.4 0 0 0-8.96 53.5552c13.056 18.2784 24.4224 37.8368 33.7408 58.112a38.4512 38.4512 0 0 0 50.944 18.8928 38.4512 38.4512 0 0 0 18.8416-50.944 436.0192 436.0192 0 0 0-40.96-70.6048 38.3488 38.3488 0 0 0-53.6064-9.0112zM181.4528 566.016a35.9936 35.9936 0 0 0 25.5488-10.5984L351.7952 410.624a36.096 36.096 0 1 0-51.0976-51.0976L217.6 442.5728C250.0096 278.1184 395.264 153.6 569.1392 153.6c50.7904 0 99.8912 10.3936 145.92 30.9248a38.4 38.4 0 1 0 31.232-70.0928 431.36 431.36 0 0 0-177.152-37.632c-214.6816 0-393.1136 156.416-428.4416 361.216L62.1568 359.4752a36.1984 36.1984 0 0 0-51.0976 51.0976l144.8448 144.7936a36.0448 36.0448 0 0 0 25.5488 10.6496zM978.5344 463.104a36.1984 36.1984 0 0 0-51.0976 0l-144.8448 144.7936a36.096 36.096 0 1 0 51.0976 51.0976l88.6272-88.576C894.3104 740.2496 746.8032 870.4 569.1392 870.4a357.7856 357.7856 0 0 1-325.2736-207.7184 38.4 38.4 0 1 0-69.7344 32.3072 434.3808 434.3808 0 0 0 394.9568 252.2112c215.1936 0 393.984-157.184 428.6464-362.7008l74.496 74.496a35.9936 35.9936 0 0 0 51.0976 0 36.096 36.096 0 0 0 0-51.0976l-144.7936-144.7936z",fill:o(r,0,"#333333")}))};f.defaultProps={size:18};const b=f,x={display:"block"},C=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...x,...l}:x;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M302 332a30 30 0 1 1 0-60h420a30 30 0 0 1 0 60H302zM302 542a30 30 0 0 1 0-60h420a30 30 0 0 1 0 60H302zM302 752a30 30 0 0 1 0-60h120a30 30 0 0 1 0 60H302z",fill:o(r,0,"#333333")}),n.createElement("path",{d:"M789.47 784.1a30 30 0 0 1 39.36 45.3l-144.24 125.25a30 30 0 0 1-19.68 7.35H214.85C163.4 962 122 919.46 122 867.38V156.62C122 104.54 163.4 62 214.85 62h594.3C860.6 62 902 104.54 902 156.62v529.05a30 30 0 1 1-60 0V156.62C842 137.3 827.09 122 809.15 122H214.85C196.91 122 182 137.3 182 156.62v710.76C182 886.7 196.91 902 214.85 902h438.84l135.78-117.9z",fill:o(r,1,"#333333")}),n.createElement("path",{d:"M692 931.19a30 30 0 1 1-60 0v-174.6C632 704.57 673.4 662 724.85 662h147.78a30 30 0 0 1 0 60h-147.78c-17.94 0-32.85 15.3-32.85 34.62v174.6z",fill:o(r,2,"#333333")}))};C.defaultProps={size:18};const E=C,M={display:"block"},R=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...M,...l}:M;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M512 883.2A371.2 371.2 0 1 0 140.8 512 371.2 371.2 0 0 0 512 883.2z m0 64a435.2 435.2 0 1 1 435.2-435.2 435.2 435.2 0 0 1-435.2 435.2z",fill:o(r,0,"#333333")}),n.createElement("path",{d:"M557.056 512l122.368 122.368a31.744 31.744 0 1 1-45.056 45.056L512 557.056l-122.368 122.368a31.744 31.744 0 1 1-45.056-45.056L466.944 512 344.576 389.632a31.744 31.744 0 1 1 45.056-45.056L512 466.944l122.368-122.368a31.744 31.744 0 1 1 45.056 45.056z",fill:o(r,1,"#333333")}))};R.defaultProps={size:18};const z=R,w={display:"block"},N=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...w,...l}:w;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5 0.2 13 0.7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5S460.5 960 512 960s99.8-13.9 141.3-38.2c41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7 0.4-6.4 0.7-12.8 0.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM716 680c0 36.8-9.7 72-27.8 102.9-17.7 30.3-43 55.6-73.3 73.3-20.1 11.8-42 20-64.9 24.3V484c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v396.5c-22.9-4.3-44.8-12.5-64.9-24.3-30.3-17.7-55.6-43-73.3-73.3C317.7 752 308 716.8 308 680V412h408v268z",fill:o(r,0,"#333333")}),n.createElement("path",{d:"M304 280h56c4.4 0 8-3.6 8-8 0-28.3 5.9-53.2 17.1-73.5 10.6-19.4 26-34.8 45.4-45.4C450.9 142 475.7 136 504 136h16c28.3 0 53.2 5.9 73.5 17.1 19.4 10.6 34.8 26 45.4 45.4C650 218.9 656 243.7 656 272c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z",fill:o(r,1,"#333333")}))};N.defaultProps={size:18};const I=N,L={display:"block"},P=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...L,...l}:L;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M512 71.68c-242.688 0-440.32 197.632-440.32 440.32s197.632 440.32 440.32 440.32 440.32-197.632 440.32-440.32-197.632-440.32-440.32-440.32z m0 819.2c-208.896 0-378.88-169.984-378.88-378.88s169.984-378.88 378.88-378.88 378.88 169.984 378.88 378.88-169.984 378.88-378.88 378.88z",fill:o(r,0,"#333333")}),n.createElement("path",{d:"M542.72 261.12H481.28v220.16H261.12v61.44h220.16v220.16h61.44v-220.16h220.16V481.28h-220.16z",fill:o(r,1,"#333333")}))};P.defaultProps={size:18};const G=P,A={display:"block"},S=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...A,...l}:A;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M384 896h-64v-70.4c0-15.2-10.4-28-24.8-31.2C159.2 768 64 644.8 64 496v-32h64v32c0 118.4 73.6 215.2 179.2 236 44.8 8.8 76.8 48 76.8 94.4v69.6zM704 896h-64v-70.4c0-45.6 32-85.6 76.8-94.4C822.4 711.2 896 614.4 896 496v-32h64v32c0 148.8-95.2 272-231.2 298.4-14.4 3.2-24.8 16-24.8 31.2v70.4zM512.8 640l-41.6-37.6c-147.2-133.6-244-208-244-316.8 0-88 68.8-156.8 156.8-156.8 49.6 0 97.6 23.2 128.8 60C544 152 592 128.8 641.6 128.8c88 0 156.8 68.8 156.8 156.8 0 108-96.8 183.2-244 316.8L512.8 640z",fill:o(r,0,"#333333")}))};S.defaultProps={size:18};const T=S,O={display:"block"},B=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...O,...l}:O;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M942.4615936 284.62787926c-14.30911886-14.12709945-37.31996786-14.05468217-51.48229632 0.21920654L517.97142983 661.27810333 139.75544149 286.45003606c-14.30911886-14.16232846-37.31996786-14.05468217-51.51948344 0.21920654-14.16232846 14.30911886-14.05468217 37.35519687 0.21920654 51.51948345l401.99014627 398.34974663c0.61847666 0.61847666 1.41897273 0.76526706 2.03940637 1.34655658 0.14483342 0.14483342 0.18201941 0.32685283 0.32685283 0.47364324 7.09877874 7.02636259 16.38375538 10.55911595 25.63154489 10.55911595 9.35739278 0 18.75001458-3.60516949 25.85075143-10.77636551l398.34974663-401.99014628C956.84312974 321.8382427 956.73548345 298.7921647 942.4615936 284.62787926z",fill:o(r,0,"#333333")}))};B.defaultProps={size:18};const F=B,j={display:"block"},Z=e=>{let{size:t,color:r,style:l,...c}=e;const i=l?{...j,...l}:j;return n.createElement("svg",(0,a.Z)({viewBox:"0 0 1024 1024",width:t+"px",height:t+"px",style:i},c),n.createElement("path",{d:"M81.5384064 739.37212074c14.30911886 14.12709945 37.31996786 14.05468217 51.48229632-0.21920654L506.02857017 362.72189667 884.24455851 737.54996394c14.30911886 14.16232846 37.31996786 14.05468217 51.51948344-0.21920654 14.16232846-14.30911886 14.05468217-37.35519687-0.21920654-51.51948345l-401.99014627-398.34974663c-0.61847666-0.61847666-1.41897273-0.76526706-2.03940637-1.34655658-0.14483342-0.14483342-0.18201941-0.32685283-0.32685282-0.47364324-7.09877874-7.02636259-16.38375538-10.55911595-25.6315449-10.55911595-9.35739278 0-18.75001458 3.60516949-25.85075143 10.77636551l-398.34974663 401.99014628C67.15687026 702.1617573 67.26451655 725.2078353 81.5384064 739.37212074z",fill:o(r,0,"#333333")}))};Z.defaultProps={size:18};const D=Z,q=e=>{let{name:t,...r}=e;switch(t){case"youhua":return n.createElement(i,r);case"dayi":return n.createElement(u,r);case"shengji":return n.createElement(g,r);case"tiaozheng":return n.createElement(k,r);case"gengxin":return n.createElement(b,r);case"wendang":return n.createElement(E,r);case"shanchu":return n.createElement(z,r);case"bug":return n.createElement(I,r);case"xinzeng":return n.createElement(G,r);case"fuwu":return n.createElement(T,r);case"down":return n.createElement(F,r);case"up":return n.createElement(D,r)}return null},H="label_p8vM",V="icon_knQK";function U(e){const{children:t}=e,r={"\u65b0\u589e":{icon:"xinzeng",bgColor:"#39b54a"},"\u4fee\u590d":{icon:"bug",bgColor:"#9c26b0"},"\u6587\u6863":{icon:"wendang",bgColor:"rgb(79, 147, 255)"},"\u66f4\u65b0":{icon:"gengxin",bgColor:"#0081ff"},"\u8c03\u6574":{icon:"tiaozheng",bgColor:"#333"},"\u5347\u7ea7":{icon:"shengji",bgColor:"#e03997"},"\u79fb\u9664":{icon:"shanchu",bgColor:"#666"},"\u7b54\u7591":{icon:"dayi",bgColor:"#bbb"},"\u4f18\u5316":{icon:"youhua",bgColor:"#38e550"},"\u63a8\u8350":{bgColor:"#38e550"},"\u4f01\u4e1a\u7248":{bgColor:"#23AAF2"}};return n.createElement("label",{className:H,title:t,style:{backgroundColor:r[t].bgColor}},n.createElement(q,{name:r[t].icon,color:"white",size:14,className:V})," ",t)}},6859:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(7462),a=(r(7294),r(3905)),o=r(510);const l={id:"generateproxyfromsourcegenerator",title:"\u4eceSourceGenerator\u83b7\u53d6\u4ee3\u7406"},c=void 0,i={unversionedId:"generateproxyfromsourcegenerator",id:"generateproxyfromsourcegenerator",title:"\u4eceSourceGenerator\u83b7\u53d6\u4ee3\u7406",description:"\u4e00\u3001\u751f\u6210\u4ee3\u7406 \u4f01\u4e1a\u7248",source:"@site/docs/generateproxyfromsourcegenerator.mdx",sourceDirName:".",slug:"/generateproxyfromsourcegenerator",permalink:"/touchsocket/docs/generateproxyfromsourcegenerator",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/generateproxyfromsourcegenerator.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1676511805,formattedLastUpdatedAt:"Feb 16, 2023",frontMatter:{id:"generateproxyfromsourcegenerator",title:"\u4eceSourceGenerator\u83b7\u53d6\u4ee3\u7406"},sidebar:"docs",previous:{title:"\u4ece\u670d\u52a1\u7aef\u751f\u6210\u4ee3\u7406",permalink:"/touchsocket/docs/generateproxyfromserver"},next:{title:"SG\u4ee3\u7406\u63a8\u8350\u5199\u6cd5",permalink:"/touchsocket/docs/generateproxysourcegeneratordemo"}},s={},p=[{value:"\u4e00\u3001\u751f\u6210\u4ee3\u7406 \u4f01\u4e1a\u7248",id:"\u4e00\u751f\u6210\u4ee3\u7406-\u4f01\u4e1a\u7248",level:2},{value:"\u4e8c\u3001\u751f\u6210\u914d\u7f6e",id:"\u4e8c\u751f\u6210\u914d\u7f6e",level:2},{value:"2.1 GeneratorRpcProxyAttribute\u914d\u7f6e",id:"21-generatorrpcproxyattribute\u914d\u7f6e",level:3},{value:"\uff081\uff09Prefix",id:"1prefix",level:4},{value:"\uff082\uff09GenericConstraintTypes",id:"2genericconstrainttypes",level:4},{value:"\uff083\uff09MethodInvoke",id:"3methodinvoke",level:4},{value:"\uff084\uff09 Namespace",id:"4-namespace",level:4},{value:"\uff085\uff09ClassName",id:"5classname",level:4},{value:"\uff086\uff09GeneratorFlag",id:"6generatorflag",level:4},{value:"\uff087\uff09 MethodFlags",id:"7-methodflags",level:4},{value:"\uff088\uff09 InheritedInterface",id:"8-inheritedinterface",level:4},{value:"2.2 GeneratorRpcMethodAttribute\u914d\u7f6e",id:"22-generatorrpcmethodattribute\u914d\u7f6e",level:3},{value:"\uff081\uff09GenericConstraintTypes",id:"1genericconstrainttypes",level:4},{value:"\uff082\uff09GeneratorFlag",id:"2generatorflag",level:4},{value:"\uff083\uff09MethodInvoke",id:"3methodinvoke-1",level:4},{value:"\uff084\uff09MethodFlags",id:"4methodflags",level:4},{value:"\uff085\uff09InvokeKey",id:"5invokekey",level:4},{value:"\uff086\uff09MethodName",id:"6methodname",level:4}],u={toc:p};function d(e){let{components:t,...l}=e;return(0,a.kt)("wrapper",(0,n.Z)({},u,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u751f\u6210\u4ee3\u7406-\u4f01\u4e1a\u7248"},"\u4e00\u3001\u751f\u6210\u4ee3\u7406 ",(0,a.kt)(o.Z,{mdxType:"Tag"},"\u4f01\u4e1a\u7248")),(0,a.kt)("p",null,"\u5bf9\u4e8e\u6e90\u4ee3\u7801\u751f\u6210\u4ee3\u7406\u6765\u8bf4\uff0c\u4ed6\u53ef\u4ee5\u4ec5\u51ed\u4e00\u4e2a\u63a5\u53e3\uff0c\u81ea\u5df1\u751f\u6210\u4ee3\u7406\u670d\u52a1\u4ee3\u7801\uff0c\u7136\u540e\u518d\u7f16\u8bd1\u5230\u5f53\u524d\u7a0b\u5e8f\u96c6\u4e2d\u3002"),(0,a.kt)("p",null,"\u4f8b\u5982\uff1a\u5bf9\u4e8e\u4e0b\u5217\u670d\u52a1"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'public class MyRpcServer : RpcServer\n{\n [TouchRpc]\n public bool Login(string account, string password)\n {\n if (account == "123" && password == "abc")\n {\n return true;\n }\n\n return false;\n }\n}\n')),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"public interface IMyRpcServer\n{\n public bool Login(string account, string password);\n}\n")),(0,a.kt)("p",null,"\u6211\u4eec\u9700\u8981\u8bbe\u7f6e\u63a5\u53e3\uff0c\u5982\u4e0b\uff1a"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},'/// \n/// GeneratorRpcProxy\u7684\u6807\u8bc6\uff0c\u8868\u660e\u8fd9\u4e2a\u63a5\u53e3\u5e94\u8be5\u88ab\u751f\u6210\u5176\u4ed6\u6e90\u4ee3\u7801\u3002\n/// ConsoleApp2.MyRpcServer\u53c2\u6570\u662f\u6574\u4e2arpc\u8c03\u7528\u7684\u524d\u7f00\uff0c\u5373\uff1a\u9664\u65b9\u6cd5\u540d\u7684\u6240\u6709\uff0c\u5305\u62ec\u670d\u52a1\u7684\u7c7b\u540d\u3002\n/// \n[GeneratorRpcProxy(Prefix = "GeneratorRpcProxyConsoleApp.MyRpcServer")]//\u6b64\u5904\u8fd8\u53ef\u4ee5\u8bbe\u7f6e\u5176\u4ed6\u53c2\u6570\uff0c\u4f8b\u5982\uff1a\u751f\u6210\u4ee3\u7406\u7684\u547d\u540d\u7a7a\u95f4\uff0c\u662f\u5426\u751f\u6210\u63a5\u53e3\u7b49\u3002\u5177\u4f53f12\u67e5\u770b\u3002\ninterface IMyRpcServer\n{\n [Description("\u8fd9\u662f\u767b\u5f55\u65b9\u6cd5")]//\u8be5\u4f5c\u7528\u662f\u751f\u6210\u6ce8\u91ca\n [GeneratorRpcMethod]//\u8868\u9762\u8be5\u65b9\u6cd5\u5e94\u8be5\u88ab\u4ee3\u7406\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u53c2\u6570\uff0c\u76f4\u63a5\u8bbe\u7f6e\u8c03\u7528\u952e\n public bool Login(string account, string password);\n}\n')),(0,a.kt)("p",null,"\u8fd9\u65f6\u5019\uff0c\u795e\u5947\u7684\u4e00\u5e55\u53d1\u751f\u4e86\uff0c\u51e1\u662f\u5b9e\u73b0",(0,a.kt)("strong",{parentName:"p"},"IRpcClient"),"\u7684\u63a5\u53e3\u7684\u5b9e\u4f8b\uff0c\u90fd\u589e\u52a0\u4e86\u6269\u5c55\u65b9\u6cd5\u3002\u800c\u8fd9\u529f\u80fd\uff0c\u548c\u670d\u52a1\u5668\u751f\u6210\u7684\u6269\u5c55Rpc\u65b9\u6cd5\u7684\u529f\u80fd\u662f\u4e00\u81f4\u7684\u3002"),(0,a.kt)("p",null,(0,a.kt)("img",{src:r(627).Z,width:"927",height:"144"})),(0,a.kt)("admonition",{title:"\u8bf4\u660e",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"\u751f\u6210\u7684\u6269\u5c55\u65b9\u6cd5\u7684\u7c7b\u540d\uff0c\u5c31\u662f",(0,a.kt)("strong",{parentName:"p"},"\u63a5\u53e3\u540d+Extensions"),"\uff0c\u547d\u540d\u7a7a\u95f4\u9ed8\u8ba4\u5728",(0,a.kt)("strong",{parentName:"p"},"TouchSocket.Rpc.Generators"),"\u4e0b\uff0c\u6240\u4ee5\u53ef\u80fd\u9700\u8981\u63d0\u524dusing\u3002")),(0,a.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u4e0a\u8ff0\u529f\u80fd\u9700\u8981\u518d\u5b89\u88c5",(0,a.kt)("a",{parentName:"p",href:"https://www.nuget.org/packages/TouchSocketPro.CodeAnalyzer"},"TouchSocketPro.CodeAnalyzer"),"\uff0c\u8be5\u64cd\u4f5c\u4e0d\u4f1a\u4ea7\u751fDLL\u4f9d\u8d56\u3002")),(0,a.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u5927\u5bb6\u53ef\u80fd\u4f1a\u7591\u95ee\uff0c\u6e90\u4ee3\u7801\u751f\u6210\u4ee3\u7406\uff0c\u548c\u670d\u52a1\u7aef\u751f\u6210\u4ee3\u7406\uff0c\u6709\u4ec0\u4e48\u533a\u522b\uff1f\u6216\u8005\u8bf4\u6709\u4ec0\u4e48\u4f18\u70b9\uff1f\n\u5b9e\u9645\u4e0a\u6ca1\u6709\u533a\u522b\uff0c\u4f18\u70b9\u6700\u540e\u4f1a\u5bf9\u6bd4\u3002\u4e4b\u6240\u4ee5\u8bbe\u8ba1\u8fd9\u4e2a\uff0c\u662f\u56e0\u4e3a\u4e4b\u524d\u6709\u4eba\u63d0\u8fc7\u9700\u6c42\uff0c\u60f3\u8981\u5b8c\u5168\u5206\u79bb\u524d\u3001\u540e\u7aef\u3002\u5373\uff1a\u540e\u7aef\u5199\u597d\u670d\u52a1\u540e\uff0c\u524d\u7aef\u81ea\u7531\u5b9a\u4e49\u670d\u52a1\u63a5\u53e3\uff0c\u548c\u8c03\u7528\u53c2\u6570\uff0c\u4ec5\u6b64\u800c\u5df2\u3002"),(0,a.kt)("p",{parentName:"admonition"},"\u6240\u4ee5\uff0c\u751f\u6210\u4ee3\u7406\u7684\u65b9\u5f0f\uff0c\u6309\u7167\u5927\u5bb6\u7684\u4e60\u60ef\u9700\u6c42\u9009\u62e9\u5c31\u53ef\u4ee5\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/%E6%BA%90%E4%BB%A3%E7%A0%81%E7%94%9F%E6%88%90%E4%BB%A3%E7%90%86/GeneratorRpcProxyConsoleApp"},"\u6e90\u4ee3\u7801\u751f\u6210\u4ee3\u7406\u793a\u4f8b\u4ee3\u7801")),(0,a.kt)("h2",{id:"\u4e8c\u751f\u6210\u914d\u7f6e"},"\u4e8c\u3001\u751f\u6210\u914d\u7f6e"),(0,a.kt)("h3",{id:"21-generatorrpcproxyattribute\u914d\u7f6e"},"2.1 GeneratorRpcProxyAttribute\u914d\u7f6e"),(0,a.kt)("p",null,"GeneratorRpcProxyAttribute\u7684\u914d\u7f6e\uff0c\u662f\u5bf9\u6574\u4e2a\u63a5\u53e3\u7684\u603b\u4f53\u914d\u7f6e\uff0c\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u7279\u6027\u540d\u79f0"),"\u76f4\u63a5\u914d\u7f6e\u5373\u53ef\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{1}","{1}":!0},'[GeneratorRpcProxy(Prefix = "RpcClassLibrary")]\npublic interface IUserServer:IRpcServer\n{\n [GeneratorRpcMethod]\n [TouchRpc]\n LoginResponse Login(LoginRequest request);\n}\n')),(0,a.kt)("p",null,"\u53ef\u914d\u7f6e\u9879\uff1a"),(0,a.kt)("h4",{id:"1prefix"},"\uff081\uff09Prefix"),(0,a.kt)("p",null,"\u8c03\u7528\u524d\u7f00\u3002\u7528\u4e8e\u914d\u7f6e\u63a5\u53e3\u65b9\u6cd5\u7684\u8c03\u7528\u952e\u524d\u7f00\uff0c\u5e94\u5305\u62ec",(0,a.kt)("strong",{parentName:"p"},"\u547d\u540d\u7a7a\u95f4"),"\u548c",(0,a.kt)("strong",{parentName:"p"},"\u7c7b\u540d"),"\uff0c\u65b9\u6cd5\u540d\u4f1a\u81ea\u52a8\u7ec4\u5408\uff0c\u4e0d\u533a\u5206\u5927\u5c0f\u5199\u3002"),(0,a.kt)("h4",{id:"2genericconstrainttypes"},"\uff082\uff09GenericConstraintTypes"),(0,a.kt)("p",null,"\u6cdb\u578b\u7ea6\u675f\u7c7b\u578b\u3002\u7528\u4e8e\u7ea6\u675f\u751f\u6210\u4ee3\u7406\u7684\u6cdb\u578b\u7c7b\u578b\uff0c\u4ece\u800c\u8ba9\u751f\u6210\u7684\u6269\u5c55\u65b9\u6cd5\u53ea\u80fd\u8ba9\u7279\u5b9a\u7684\u7c7b\u578b\u6267\u884c\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u53ea\u4f1a\u7ea6\u675f",(0,a.kt)("strong",{parentName:"p"},"IRpcClient"),"\u63a5\u53e3\u3002"),(0,a.kt)("p",null,"\u4f8b\u5982\uff1a"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{2}","{2}":!0},'public static LoginResponse Login(this TClient client,LoginRequest request,IInvokeOption invokeOption = default) \nwhere TClient:IRpcClient\n{\n if (client.TryCanInvoke?.Invoke(client)==false)\n {\n throw new RpcException("Rpc\u65e0\u6cd5\u6267\u884c\u3002");\n }\n object[] parameters = new object[]{request};\n RpcClassLibrary.Models.LoginResponse returnData=client.Invoke("rpcclasslibrary.login",invokeOption, parameters);\n return returnData;\n}\n')),(0,a.kt)("admonition",{title:"\u6ce8\u610f",type:"caution"},(0,a.kt)("p",{parentName:"admonition"},"\u6cdb\u578b\u7ea6\u675f\u7684\u603b\u548c\uff0c\u5fc5\u987b\u76f4\u63a5\u6216\u95f4\u63a5\u5b9e\u73b0",(0,a.kt)("strong",{parentName:"p"},"IRpcClient"),"\u63a5\u53e3\u3002")),(0,a.kt)("h4",{id:"3methodinvoke"},"\uff083\uff09MethodInvoke"),(0,a.kt)("p",null,"\u8868\u793a\u63a5\u53e3\u7684\u6240\u6709\u65b9\u6cd5\uff0c\u5747\u4ec5\u901a\u8fc7\u65b9\u6cd5\u540d\u8c03\u7528\uff0c\u4e5f\u5c31\u662f\u76f4\u63a5\u4f1a\u5c06\u65b9\u6cd5\u540d\u8bbe\u7f6e\u4e3a\u8c03\u7528\u952e\uff0c\u533a\u522b\u5927\u5c0f\u5199\u3002"),(0,a.kt)("h4",{id:"4-namespace"},"\uff084\uff09 Namespace"),(0,a.kt)("p",null,"\u8868\u793a\u751f\u6210\u63a5\u53e3\uff0c\u6269\u5c55\u7c7b\u7684\u547d\u540d\u7a7a\u95f4\u3002\u9ed8\u8ba4\u662f",(0,a.kt)("strong",{parentName:"p"},"TouchSocket.Rpc.Generators"),"\u3002"),(0,a.kt)("h4",{id:"5classname"},"\uff085\uff09ClassName"),(0,a.kt)("p",null,"\u8868\u793a\u751f\u6210\u63a5\u53e3\uff0c\u6269\u5c55\u7c7b\u7684\u57fa\u7840\u540d\u79f0\uff0c\u4f8b\u5982\u8bbe\u4e3aA\uff0c\u5219\u751f\u6210\u7684\u63a5\u53e3\u662fIA\uff0c\u6269\u5c55\u7c7b\u662fAExtensions\u3002\u9ed8\u8ba4\u662f",(0,a.kt)("strong",{parentName:"p"},"\u58f0\u660e\u63a5\u53e3\u7684\u540d\u79f0"),"\uff08\u9664\u53bb\u201cI\u201d\uff09\u3002"),(0,a.kt)("h4",{id:"6generatorflag"},"\uff086\uff09GeneratorFlag"),(0,a.kt)("p",null,"\u751f\u6210\u6807\u8bc6\uff0c\u53ef\u8868\u793a\u662f\u5426\u751f\u6210\u540c\u6b65\u4ee3\u7801\uff0c\u6216\u5f02\u6b65\uff0c\u6216\u4e0d\u751f\u6210\u63a5\u53e3\u7b49\u7b49\u3002"),(0,a.kt)("p",null,"\u4f8b\u5982\uff1a\u4e0b\u5217\u793a\u4f8b\uff0c\u53ea\u4f1a\u751f\u6210",(0,a.kt)("strong",{parentName:"p"},"\u5f02\u6b65\u6269\u5c55"),"\u8c03\u7528\uff0c\u548c",(0,a.kt)("strong",{parentName:"p"},"\u5f02\u6b65\u63a5\u53e3"),"\u4ee3\u7801\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{1}","{1}":!0},"[GeneratorRpcProxy(GeneratorFlag = CodeGeneratorFlag.ExtensionAsync| CodeGeneratorFlag.InterfaceAsync)]\npublic interface IUserServer:IRpcServer\n{\n [GeneratorRpcMethod]\n [TouchRpc]\n LoginResponse Login(LoginRequest request);\n}\n")),(0,a.kt)("h4",{id:"7-methodflags"},"\uff087\uff09 MethodFlags"),(0,a.kt)("p",null,"\u51fd\u6570\u6807\u8bc6\uff0c\u53ef\u4ee5\u58f0\u660e\u8be5\u51fd\u6570\u652f\u6301\u8c03\u7528\u4e0a\u4e0b\u6587\uff0c\u5373\u5728\u751f\u6210\u4ee3\u7406\u65f6\uff0c\u4f1a\u5ffd\u7565\u7b2c\u4e00\u4e2a\u53c2\u6570\u9879\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{1,6}","{1,6}":!0},"[GeneratorRpcProxy(MethodFlags = MethodFlags.IncludeCallContext)]\npublic interface IUserServer:IRpcServer\n{\n [GeneratorRpcMethod]\n [TouchRpc]\n LoginResponse Login(ICallContext callContext,LoginRequest request);\n}\n")),(0,a.kt)("admonition",{title:"\u63d0\u793a",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u8be5\u573a\u666f\u7684\u4f7f\u7528\uff0c\u4e00\u822c\u662f\uff0c\u8be5\u63a5\u53e3\u4f1a\u4f5c\u4e3a",(0,a.kt)("strong",{parentName:"p"},"\u670d\u52a1\u5b9e\u73b0"),"\u63a5\u53e3\u3002")),(0,a.kt)("h4",{id:"8-inheritedinterface"},"\uff088\uff09 InheritedInterface"),(0,a.kt)("p",null,"\u7ee7\u627f\u63a5\u53e3\uff0c\u6807\u8bc6\u751f\u6210\u63a5\u53e3\u4ee3\u7406\u65f6\uff0c\u662f\u5426\u4f9d\u7136\u4fdd\u6301\u5176\u4ed6\u63a5\u53e3\u7684\u7ee7\u627f\u5b9e\u73b0\u3002"),(0,a.kt)("p",null,"\u4f8b\u5982\uff1a\u4e0b\u5217\u793a\u4f8b\u4e2d\uff0cA\u63a5\u53e3\u7ee7\u627f\u4e86IRpcServer\uff08\u5916\u90e8\u63a5\u53e3\uff09\uff0c\u800cB\u548c\u63a5\u53e3\u53c8\u7ee7\u627f\u4e86A\uff0c\u6240\u4ee5\u5168\u90e8\u8bbe\u7f6e\u4e3atrue\u65f6\uff0c\u5728\u751f\u6210\u63a5\u53e3\u4e2d\uff0c\u4f9d\u7136\u4f1a\u4fdd\u6301\u6574\u4e2a\u7ee7\u627f\u94fe\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{1,7}","{1,7}":!0},"[GeneratorRpcProxy(InheritedInterface =true)]\npublic interface IA:IRpcServer\n{\n \n}\n\n[GeneratorRpcProxy(InheritedInterface =true)]\npublic interface IB:IA\n{\n \n}\n\n")),(0,a.kt)("h3",{id:"22-generatorrpcmethodattribute\u914d\u7f6e"},"2.2 GeneratorRpcMethodAttribute\u914d\u7f6e"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{4}","{4}":!0},"[GeneratorRpcProxy(MethodFlags = MethodFlags.IncludeCallContext)]\npublic interface IUserServer:IRpcServer\n{\n [GeneratorRpcMethod(MethodFlags = MethodFlags.IncludeCallContext)]\n LoginResponse Login(ICallContext callContext,LoginRequest request);\n}\n")),(0,a.kt)("p",null,"\u53ef\u914d\u7f6e\u9879\uff1a"),(0,a.kt)("h4",{id:"1genericconstrainttypes"},"\uff081\uff09GenericConstraintTypes"),(0,a.kt)("h4",{id:"2generatorflag"},"\uff082\uff09GeneratorFlag"),(0,a.kt)("h4",{id:"3methodinvoke-1"},"\uff083\uff09MethodInvoke"),(0,a.kt)("h4",{id:"4methodflags"},"\uff084\uff09MethodFlags"),(0,a.kt)("admonition",{title:"\u8bf4\u660e",type:"info"},(0,a.kt)("p",{parentName:"admonition"},"\u4ee5\u4e0a\u9879\u76ee\u529f\u80fd\u548c",(0,a.kt)("strong",{parentName:"p"},"GeneratorRpcProxyAttribute"),"\u4e00\u81f4\uff0c\u4f46\u662f\u5f53\u914d\u7f6e\u65f6\uff0c\u4f1a\u4f18\u5148\u751f\u6548\u3002")),(0,a.kt)("h4",{id:"5invokekey"},"\uff085\uff09InvokeKey"),(0,a.kt)("p",null,"\u8c03\u7528\u952e\uff0c\u76f4\u63a5\u751f\u6548\uff0c\u533a\u5206\u5927\u5c0f\u5199\u3002"),(0,a.kt)("h4",{id:"6methodname"},"\uff086\uff09MethodName"),(0,a.kt)("p",null,"\u65b9\u6cd5\u540d\u79f0\uff0c\u53ef\u4ee5\u4fee\u6539\u751f\u6210\u4ee3\u7406\u7684\u65b9\u6cd5\u540d\u3002"))}d.isMDXComponent=!0},627:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/generateproxy-1-163d930232955088abd9e846f68067d1.png"}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/9bfb9f12.f5fa9cce.js b/handbook/build/assets/js/9bfb9f12.649fd259.js similarity index 98% rename from handbook/build/assets/js/9bfb9f12.f5fa9cce.js rename to handbook/build/assets/js/9bfb9f12.649fd259.js index d609ee503e24264a24376dae762eacc620fcdffe..5368a2d18ec0f249dae7a200d1a7745c8c78c8c8 100644 --- a/handbook/build/assets/js/9bfb9f12.f5fa9cce.js +++ b/handbook/build/assets/js/9bfb9f12.649fd259.js @@ -1 +1 @@ -"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[5264],{3905:(t,e,n)=>{n.d(e,{Zo:()=>c,kt:()=>p});var r=n(7294);function s(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;e=0||(s[n]=t[n]);return s}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(s[n]=t[n])}return s}var o=r.createContext({}),u=function(t){var e=r.useContext(o),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},c=function(t){var e=u(t.components);return r.createElement(o.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},f=r.forwardRef((function(t,e){var n=t.components,s=t.mdxType,a=t.originalType,o=t.parentName,c=l(t,["components","mdxType","originalType","parentName"]),f=u(n),p=s,v=f["".concat(o,".").concat(p)]||f[p]||d[p]||a;return n?r.createElement(v,i(i({ref:e},c),{},{components:n})):r.createElement(v,i({ref:e},c))}));function p(t,e){var n=arguments,s=e&&e.mdxType;if("string"==typeof t||s){var a=n.length,i=new Array(a);i[0]=f;var l={};for(var o in e)hasOwnProperty.call(e,o)&&(l[o]=e[o]);l.originalType=t,l.mdxType="string"==typeof t?t:s,i[1]=l;for(var u=2;u{n.r(e),n.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var r=n(7462),s=(n(7294),n(3905));const a={id:"fastbinaryformatter",title:"\u9ad8\u6027\u80fd\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316"},i=void 0,l={unversionedId:"fastbinaryformatter",id:"fastbinaryformatter",title:"\u9ad8\u6027\u80fd\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/fastbinaryformatter.mdx",sourceDirName:".",slug:"/fastbinaryformatter",permalink:"/touchsocket/docs/fastbinaryformatter",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/fastbinaryformatter.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"fastbinaryformatter",title:"\u9ad8\u6027\u80fd\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316"},sidebar:"docs",previous:{title:"\u5e94\u7528\u4fe1\u4f7f",permalink:"/touchsocket/docs/appmessenger"},next:{title:"Json\u5e8f\u5217\u5316",permalink:"/touchsocket/docs/jsonserialize"}},o={},u=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u5e8f\u5217\u5316\u3001\u53cd\u5e8f\u5217\u5316",id:"\u4e8c\u5e8f\u5217\u5316\u53cd\u5e8f\u5217\u5316",level:2},{value:"\u4e09\u3001\u81ea\u5b9a\u4e49\u8f6c\u6362\u5668",id:"\u4e09\u81ea\u5b9a\u4e49\u8f6c\u6362\u5668",level:2},{value:"\u56db\u3001\u6027\u80fd\u6d4b\u8bd5",id:"\u56db\u6027\u80fd\u6d4b\u8bd5",level:2},{value:"4.1 \u7b80\u5355\u6d4b\u8bd5",id:"41-\u7b80\u5355\u6d4b\u8bd5",level:3},{value:"4.2 \u590d\u6742\u7c7b\u578b\u6d4b\u8bd5",id:"42-\u590d\u6742\u7c7b\u578b\u6d4b\u8bd5",level:3}],c={toc:u};function d(t){let{components:e,...a}=t;return(0,s.kt)("wrapper",(0,r.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,s.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,s.kt)("p",null,"\u8be5\u5e8f\u5217\u5316\u4ee5\u4e8c\u8fdb\u5236\u65b9\u5f0f\u8fdb\u884c\u5e8f\u5217\u5316\uff0c\u4e0d\u8981\u6c42\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\u7c7b\u578b\u76f8\u540c\uff0c\u4f7f\u7528\u4f53\u9a8c\u548c\u517c\u5bb9\u6027\u4e0ejson\u76f8\u4f3c\u3002\u652f\u6301",(0,s.kt)("strong",{parentName:"p"},"\u57fa\u7840\u7c7b\u578b"),"\u3001",(0,s.kt)("strong",{parentName:"p"},"\u81ea\u5b9a\u4e49\u5b9e\u4f53\u7c7b"),"\u3001",(0,s.kt)("strong",{parentName:"p"},"\u7ed3\u6784\u4f53"),"\u3001",(0,s.kt)("strong",{parentName:"p"},"\u5143\u7ec4"),"\u3001",(0,s.kt)("strong",{parentName:"p"},"\u6570\u7ec4"),"\u3001",(0,s.kt)("strong",{parentName:"p"},"\u5b57\u5178"),"\u3001",(0,s.kt)("strong",{parentName:"p"},"List"),"\u7b49\u3002"),(0,s.kt)("h2",{id:"\u4e8c\u5e8f\u5217\u5316\u53cd\u5e8f\u5217\u5316"},"\u4e8c\u3001\u5e8f\u5217\u5316\u3001\u53cd\u5e8f\u5217\u5316"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-csharp"},'var obj = "TouchSocket";\nvar data = SerializeConvert.FastBinarySerialize(obj);\nvar newobj = SerializeConvert.FastBinaryDeserialize(data);\n')),(0,s.kt)("h2",{id:"\u4e09\u81ea\u5b9a\u4e49\u8f6c\u6362\u5668"},"\u4e09\u3001\u81ea\u5b9a\u4e49\u8f6c\u6362\u5668"),(0,s.kt)("p",null,"\u81ea\u5b9a\u4e49\u8f6c\u5316\u5668\u7684\u4f7f\u7528\uff0c\u53ef\u4ee5\u89e3\u51b3",(0,s.kt)("strong",{parentName:"p"},"\u6240\u6709\u7c7b\u578b"),"\u7684\u5e8f\u5217\u5316\uff0c\u4f46\u662f\u8fd9\u9700\u8981\u81ea\u5df1\u7f16\u5199\u4e00\u4e9b\u4ee3\u7801\u3002\u5177\u4f53\u64cd\u4f5c\u5982\u4e0b\uff1a"),(0,s.kt)("ol",null,(0,s.kt)("li",{parentName:"ol"},"\u58f0\u660e\u8f6c\u6362\u5668\u3002")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-csharp"},'/// \n/// \u7ee7\u627f\u6216\u8005\u5b9e\u73b0\n/// \nclass StudentFastBinaryConverter : FastBinaryConverter\n{\n protected override Student Read(byte[] buffer, int offset, int len)\n {\n var byteBlock = new ValueByteBlock(buffer);\n byteBlock.Pos = offset;\n var obj = new Student();\n obj.P1 = byteBlock.ReadInt32();\n obj.P2 = byteBlock.ReadString();\n return obj;\n }\n\n protected override int Write(ByteBlock byteBlock, Student obj)\n {\n //\u6b64\u5904\u53ef\u4ee5\u76f4\u63a5\u5d4c\u5957Json\u5e8f\u5217\u5316\uff0c\u4f46\u662f\u4e3a\u6f14\u793a\u6548\u679c\uff0c\u4e0b\u5217\u5c06\u4f9d\u7136\u4f7f\u7528\u4e8c\u8fdb\u5236\u65b9\u5f0f\n int pos = byteBlock.Pos;\n byteBlock.Write(obj.P1);\n byteBlock.Write(obj.P2);\n return byteBlock.Pos - pos;//\u8fd4\u56de\u7684\u5373\u662fobj\u6240\u6709\u7684\u5b57\u8282\u957f\u5ea6\n }\n}\n')),(0,s.kt)("ol",{start:2},(0,s.kt)("li",{parentName:"ol"},"\u9644\u52a0\u8f6c\u6362\u5668")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{1}","{1}":!0},"[FastConverter(typeof(StudentFastBinaryConverter))]\nclass Student\n{\n public int P1 { get; set; }\n public string P2 { get; set; }\n}\n")),(0,s.kt)("admonition",{type:"tip"},(0,s.kt)("p",{parentName:"admonition"},"\u5f53\u7c7b\u578b\u5df2\u7ecf\u5b9a\u4e49\uff0c\u65e0\u6cd5\u901a\u8fc7\u7279\u6027\u6dfb\u52a0\u8f6c\u6362\u5668\u65f6\uff0c\u53ef\u4ee5\u901a\u8fc7",(0,s.kt)("inlineCode",{parentName:"p"},"FastBinaryFormatter.AddFastBinaryConverter(typeof(Student),new StudentFastBinaryConverter());"),"\u76f4\u63a5\u6dfb\u52a0\u3002")),(0,s.kt)("h2",{id:"\u56db\u6027\u80fd\u6d4b\u8bd5"},"\u56db\u3001\u6027\u80fd\u6d4b\u8bd5"),(0,s.kt)("h3",{id:"41-\u7b80\u5355\u6d4b\u8bd5"},"4.1 \u7b80\u5355\u6d4b\u8bd5"),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"\u5f85\u6d4b\u8bd5\u7c7b\u578b")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-csharp"},"[Serializable]\npublic class MyPackPerson\n{\n public int Age { get; set; }\n public string Name { get; set; }\n}\n")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"\u7ed3\u679c")),(0,s.kt)("p",null,"\u4ee5\u4e0b\u6d4b\u8bd5\u662f\u6267\u884c10000\u6b21\u5e8f\u5217\u5316\u548c\u53cd\u5e8f\u5217\u7684\u7ed3\u679c\u3002"),(0,s.kt)("p",null,(0,s.kt)("img",{src:n(6242).Z,width:"1203",height:"228"})),(0,s.kt)("h3",{id:"42-\u590d\u6742\u7c7b\u578b\u6d4b\u8bd5"},"4.2 \u590d\u6742\u7c7b\u578b\u6d4b\u8bd5"),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"\u5f85\u6d4b\u8bd5\u7c7b")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-csharp"},' [Serializable]\npublic class Student\n{\n public int P1 { get; set; }\n public string P2 { get; set; }\n public long P3 { get; set; }\n public byte P4 { get; set; }\n public DateTime P5 { get; set; }\n public double P6 { get; set; }\n public byte[] P7 { get; set; }\n\n public List List1 { get; set; }\n public List List2 { get; set; }\n public List List3 { get; set; }\n\n public Dictionary Dic1 { get; set; }\n public Dictionary Dic2 { get; set; }\n public Dictionary Dic3 { get; set; }\n public Dictionary Dic4 { get; set; }\n}\n\n[Serializable]\npublic class Arg\n{\n public Arg(int myProperty)\n {\n this.MyProperty = myProperty;\n }\n\n public Arg()\n {\n Person person = new Person();\n person.Name = "\u5f20\u4e09";\n person.Age = 18;\n }\n\n public int MyProperty { get; set; }\n}\n[Serializable]\npublic class Person\n{\n public string Name { get; set; }\n public int Age { get; set; }\n}\n')),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"\u8d4b\u503c")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-csharp"},'Student student = new Student();\nstudent.P1 = 10;\nstudent.P2 = "\u82e5\u6c5d\u68cb\u8317";\nstudent.P3 = 100;\nstudent.P4 = 0;\nstudent.P5 = DateTime.Now;\nstudent.P6 = 10;\nstudent.P7 = new byte[1024 * 64];\n\nRandom random = new Random();\nrandom.NextBytes(student.P7);\n\nstudent.List1 = new List();\nstudent.List1.Add(1);\nstudent.List1.Add(2);\nstudent.List1.Add(3);\n\nstudent.List2 = new List();\nstudent.List2.Add("1");\nstudent.List2.Add("2");\nstudent.List2.Add("3");\n\nstudent.List3 = new List();\nstudent.List3.Add(new byte[1024]);\nstudent.List3.Add(new byte[1024]);\nstudent.List3.Add(new byte[1024]);\n\nstudent.Dic1 = new Dictionary();\nstudent.Dic1.Add(1, 1);\nstudent.Dic1.Add(2, 2);\nstudent.Dic1.Add(3, 3);\n\nstudent.Dic2 = new Dictionary();\nstudent.Dic2.Add(1, "1");\nstudent.Dic2.Add(2, "2");\nstudent.Dic2.Add(3, "3");\n\nstudent.Dic3 = new Dictionary();\nstudent.Dic3.Add("1", "1");\nstudent.Dic3.Add("2", "2");\nstudent.Dic3.Add("3", "3");\n\nstudent.Dic4 = new Dictionary();\nstudent.Dic4.Add(1, new Arg(1));\nstudent.Dic4.Add(2, new Arg(2));\nstudent.Dic4.Add(3, new Arg(3));\n')),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"\u7ed3\u679c")),(0,s.kt)("p",null,"Fast\u7684\u6548\u7387\u6bd4System\u81ea\u5e26\u7684\uff0c\u5feb\u4e86\u8fd17\u500d\uff0c\u6bd4System.Text.Json\u5feb\u4e864\u500d\u591a\uff0c\u6bd4NewtonsoftJson\u5feb\u4e86\u8fd130\u500d\u3002"),(0,s.kt)("p",null,(0,s.kt)("img",{src:n(1396).Z,width:"1402",height:"234"})))}d.isMDXComponent=!0},6242:(t,e,n)=>{n.d(e,{Z:()=>r});const r="data:image/png;base64,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"},1396:(t,e,n)=>{n.d(e,{Z:()=>r});const r="data:image/png;base64,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"}}]); \ No newline at end of file +"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[5264],{3905:(t,e,n)=>{n.d(e,{Zo:()=>c,kt:()=>p});var r=n(7294);function s(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;e=0||(s[n]=t[n]);return s}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(s[n]=t[n])}return s}var o=r.createContext({}),u=function(t){var e=r.useContext(o),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},c=function(t){var e=u(t.components);return r.createElement(o.Provider,{value:e},t.children)},d={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},f=r.forwardRef((function(t,e){var n=t.components,s=t.mdxType,a=t.originalType,o=t.parentName,c=l(t,["components","mdxType","originalType","parentName"]),f=u(n),p=s,v=f["".concat(o,".").concat(p)]||f[p]||d[p]||a;return n?r.createElement(v,i(i({ref:e},c),{},{components:n})):r.createElement(v,i({ref:e},c))}));function p(t,e){var n=arguments,s=e&&e.mdxType;if("string"==typeof t||s){var a=n.length,i=new Array(a);i[0]=f;var l={};for(var o in e)hasOwnProperty.call(e,o)&&(l[o]=e[o]);l.originalType=t,l.mdxType="string"==typeof t?t:s,i[1]=l;for(var u=2;u{n.r(e),n.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var r=n(7462),s=(n(7294),n(3905));const a={id:"fastbinaryformatter",title:"\u9ad8\u6027\u80fd\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316"},i=void 0,l={unversionedId:"fastbinaryformatter",id:"fastbinaryformatter",title:"\u9ad8\u6027\u80fd\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/fastbinaryformatter.mdx",sourceDirName:".",slug:"/fastbinaryformatter",permalink:"/touchsocket/docs/fastbinaryformatter",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/fastbinaryformatter.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"fastbinaryformatter",title:"\u9ad8\u6027\u80fd\u4e8c\u8fdb\u5236\u5e8f\u5217\u5316"},sidebar:"docs",previous:{title:"\u5e94\u7528\u4fe1\u4f7f",permalink:"/touchsocket/docs/appmessenger"},next:{title:"Json\u5e8f\u5217\u5316",permalink:"/touchsocket/docs/jsonserialize"}},o={},u=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u5e8f\u5217\u5316\u3001\u53cd\u5e8f\u5217\u5316",id:"\u4e8c\u5e8f\u5217\u5316\u53cd\u5e8f\u5217\u5316",level:2},{value:"\u4e09\u3001\u81ea\u5b9a\u4e49\u8f6c\u6362\u5668",id:"\u4e09\u81ea\u5b9a\u4e49\u8f6c\u6362\u5668",level:2},{value:"\u56db\u3001\u6027\u80fd\u6d4b\u8bd5",id:"\u56db\u6027\u80fd\u6d4b\u8bd5",level:2},{value:"4.1 \u7b80\u5355\u6d4b\u8bd5",id:"41-\u7b80\u5355\u6d4b\u8bd5",level:3},{value:"4.2 \u590d\u6742\u7c7b\u578b\u6d4b\u8bd5",id:"42-\u590d\u6742\u7c7b\u578b\u6d4b\u8bd5",level:3}],c={toc:u};function d(t){let{components:e,...a}=t;return(0,s.kt)("wrapper",(0,r.Z)({},c,a,{components:e,mdxType:"MDXLayout"}),(0,s.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,s.kt)("p",null,"\u8be5\u5e8f\u5217\u5316\u4ee5\u4e8c\u8fdb\u5236\u65b9\u5f0f\u8fdb\u884c\u5e8f\u5217\u5316\uff0c\u4e0d\u8981\u6c42\u5e8f\u5217\u5316\u4e0e\u53cd\u5e8f\u5217\u5316\u7c7b\u578b\u76f8\u540c\uff0c\u4f7f\u7528\u4f53\u9a8c\u548c\u517c\u5bb9\u6027\u4e0ejson\u76f8\u4f3c\u3002\u652f\u6301",(0,s.kt)("strong",{parentName:"p"},"\u57fa\u7840\u7c7b\u578b"),"\u3001",(0,s.kt)("strong",{parentName:"p"},"\u81ea\u5b9a\u4e49\u5b9e\u4f53\u7c7b"),"\u3001",(0,s.kt)("strong",{parentName:"p"},"\u7ed3\u6784\u4f53"),"\u3001",(0,s.kt)("strong",{parentName:"p"},"\u5143\u7ec4"),"\u3001",(0,s.kt)("strong",{parentName:"p"},"\u6570\u7ec4"),"\u3001",(0,s.kt)("strong",{parentName:"p"},"\u5b57\u5178"),"\u3001",(0,s.kt)("strong",{parentName:"p"},"List"),"\u7b49\u3002"),(0,s.kt)("h2",{id:"\u4e8c\u5e8f\u5217\u5316\u53cd\u5e8f\u5217\u5316"},"\u4e8c\u3001\u5e8f\u5217\u5316\u3001\u53cd\u5e8f\u5217\u5316"),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-csharp"},'var obj = "TouchSocket";\nvar data = SerializeConvert.FastBinarySerialize(obj);\nvar newobj = SerializeConvert.FastBinaryDeserialize(data);\n')),(0,s.kt)("h2",{id:"\u4e09\u81ea\u5b9a\u4e49\u8f6c\u6362\u5668"},"\u4e09\u3001\u81ea\u5b9a\u4e49\u8f6c\u6362\u5668"),(0,s.kt)("p",null,"\u81ea\u5b9a\u4e49\u8f6c\u5316\u5668\u7684\u4f7f\u7528\uff0c\u53ef\u4ee5\u89e3\u51b3",(0,s.kt)("strong",{parentName:"p"},"\u6240\u6709\u7c7b\u578b"),"\u7684\u5e8f\u5217\u5316\uff0c\u4f46\u662f\u8fd9\u9700\u8981\u81ea\u5df1\u7f16\u5199\u4e00\u4e9b\u4ee3\u7801\u3002\u5177\u4f53\u64cd\u4f5c\u5982\u4e0b\uff1a"),(0,s.kt)("ol",null,(0,s.kt)("li",{parentName:"ol"},"\u58f0\u660e\u8f6c\u6362\u5668\u3002")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-csharp"},'/// \n/// \u7ee7\u627f\u6216\u8005\u5b9e\u73b0\n/// \nclass StudentFastBinaryConverter : FastBinaryConverter\n{\n protected override Student Read(byte[] buffer, int offset, int len)\n {\n var byteBlock = new ValueByteBlock(buffer);\n byteBlock.Pos = offset;\n var obj = new Student();\n obj.P1 = byteBlock.ReadInt32();\n obj.P2 = byteBlock.ReadString();\n return obj;\n }\n\n protected override int Write(ByteBlock byteBlock, Student obj)\n {\n //\u6b64\u5904\u53ef\u4ee5\u76f4\u63a5\u5d4c\u5957Json\u5e8f\u5217\u5316\uff0c\u4f46\u662f\u4e3a\u6f14\u793a\u6548\u679c\uff0c\u4e0b\u5217\u5c06\u4f9d\u7136\u4f7f\u7528\u4e8c\u8fdb\u5236\u65b9\u5f0f\n int pos = byteBlock.Pos;\n byteBlock.Write(obj.P1);\n byteBlock.Write(obj.P2);\n return byteBlock.Pos - pos;//\u8fd4\u56de\u7684\u5373\u662fobj\u6240\u6709\u7684\u5b57\u8282\u957f\u5ea6\n }\n}\n')),(0,s.kt)("ol",{start:2},(0,s.kt)("li",{parentName:"ol"},"\u9644\u52a0\u8f6c\u6362\u5668")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{1}","{1}":!0},"[FastConverter(typeof(StudentFastBinaryConverter))]\nclass Student\n{\n public int P1 { get; set; }\n public string P2 { get; set; }\n}\n")),(0,s.kt)("admonition",{type:"tip"},(0,s.kt)("p",{parentName:"admonition"},"\u5f53\u7c7b\u578b\u5df2\u7ecf\u5b9a\u4e49\uff0c\u65e0\u6cd5\u901a\u8fc7\u7279\u6027\u6dfb\u52a0\u8f6c\u6362\u5668\u65f6\uff0c\u53ef\u4ee5\u901a\u8fc7",(0,s.kt)("inlineCode",{parentName:"p"},"FastBinaryFormatter.AddFastBinaryConverter(typeof(Student),new StudentFastBinaryConverter());"),"\u76f4\u63a5\u6dfb\u52a0\u3002")),(0,s.kt)("h2",{id:"\u56db\u6027\u80fd\u6d4b\u8bd5"},"\u56db\u3001\u6027\u80fd\u6d4b\u8bd5"),(0,s.kt)("h3",{id:"41-\u7b80\u5355\u6d4b\u8bd5"},"4.1 \u7b80\u5355\u6d4b\u8bd5"),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"\u5f85\u6d4b\u8bd5\u7c7b\u578b")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-csharp"},"[Serializable]\npublic class MyPackPerson\n{\n public int Age { get; set; }\n public string Name { get; set; }\n}\n")),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"\u7ed3\u679c")),(0,s.kt)("p",null,"\u4ee5\u4e0b\u6d4b\u8bd5\u662f\u6267\u884c10000\u6b21\u5e8f\u5217\u5316\u548c\u53cd\u5e8f\u5217\u7684\u7ed3\u679c\u3002"),(0,s.kt)("p",null,(0,s.kt)("img",{src:n(1884).Z,width:"1203",height:"228"})),(0,s.kt)("h3",{id:"42-\u590d\u6742\u7c7b\u578b\u6d4b\u8bd5"},"4.2 \u590d\u6742\u7c7b\u578b\u6d4b\u8bd5"),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"\u5f85\u6d4b\u8bd5\u7c7b")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-csharp"},' [Serializable]\npublic class Student\n{\n public int P1 { get; set; }\n public string P2 { get; set; }\n public long P3 { get; set; }\n public byte P4 { get; set; }\n public DateTime P5 { get; set; }\n public double P6 { get; set; }\n public byte[] P7 { get; set; }\n\n public List List1 { get; set; }\n public List List2 { get; set; }\n public List List3 { get; set; }\n\n public Dictionary Dic1 { get; set; }\n public Dictionary Dic2 { get; set; }\n public Dictionary Dic3 { get; set; }\n public Dictionary Dic4 { get; set; }\n}\n\n[Serializable]\npublic class Arg\n{\n public Arg(int myProperty)\n {\n this.MyProperty = myProperty;\n }\n\n public Arg()\n {\n Person person = new Person();\n person.Name = "\u5f20\u4e09";\n person.Age = 18;\n }\n\n public int MyProperty { get; set; }\n}\n[Serializable]\npublic class Person\n{\n public string Name { get; set; }\n public int Age { get; set; }\n}\n')),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"\u8d4b\u503c")),(0,s.kt)("pre",null,(0,s.kt)("code",{parentName:"pre",className:"language-csharp"},'Student student = new Student();\nstudent.P1 = 10;\nstudent.P2 = "\u82e5\u6c5d\u68cb\u8317";\nstudent.P3 = 100;\nstudent.P4 = 0;\nstudent.P5 = DateTime.Now;\nstudent.P6 = 10;\nstudent.P7 = new byte[1024 * 64];\n\nRandom random = new Random();\nrandom.NextBytes(student.P7);\n\nstudent.List1 = new List();\nstudent.List1.Add(1);\nstudent.List1.Add(2);\nstudent.List1.Add(3);\n\nstudent.List2 = new List();\nstudent.List2.Add("1");\nstudent.List2.Add("2");\nstudent.List2.Add("3");\n\nstudent.List3 = new List();\nstudent.List3.Add(new byte[1024]);\nstudent.List3.Add(new byte[1024]);\nstudent.List3.Add(new byte[1024]);\n\nstudent.Dic1 = new Dictionary();\nstudent.Dic1.Add(1, 1);\nstudent.Dic1.Add(2, 2);\nstudent.Dic1.Add(3, 3);\n\nstudent.Dic2 = new Dictionary();\nstudent.Dic2.Add(1, "1");\nstudent.Dic2.Add(2, "2");\nstudent.Dic2.Add(3, "3");\n\nstudent.Dic3 = new Dictionary();\nstudent.Dic3.Add("1", "1");\nstudent.Dic3.Add("2", "2");\nstudent.Dic3.Add("3", "3");\n\nstudent.Dic4 = new Dictionary();\nstudent.Dic4.Add(1, new Arg(1));\nstudent.Dic4.Add(2, new Arg(2));\nstudent.Dic4.Add(3, new Arg(3));\n')),(0,s.kt)("p",null,(0,s.kt)("strong",{parentName:"p"},"\u7ed3\u679c")),(0,s.kt)("p",null,"Fast\u7684\u6548\u7387\u6bd4System\u81ea\u5e26\u7684\uff0c\u5feb\u4e86\u8fd17\u500d\uff0c\u6bd4System.Text.Json\u5feb\u4e864\u500d\u591a\uff0c\u6bd4NewtonsoftJson\u5feb\u4e86\u8fd130\u500d\u3002"),(0,s.kt)("p",null,(0,s.kt)("img",{src:n(6856).Z,width:"1402",height:"234"})))}d.isMDXComponent=!0},1884:(t,e,n)=>{n.d(e,{Z:()=>r});const r="data:image/png;base64,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"},6856:(t,e,n)=>{n.d(e,{Z:()=>r});const r="data:image/png;base64,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"}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/b0d79caf.9d45fc5d.js b/handbook/build/assets/js/b0d79caf.41e7e6b8.js similarity index 86% rename from handbook/build/assets/js/b0d79caf.9d45fc5d.js rename to handbook/build/assets/js/b0d79caf.41e7e6b8.js index ea44afe7383ed279bff25c1c139fbc65b009308d..1df3dfb3ce249f348896ba6c9baa6d56c2b4eade 100644 --- a/handbook/build/assets/js/b0d79caf.9d45fc5d.js +++ b/handbook/build/assets/js/b0d79caf.41e7e6b8.js @@ -1 +1 @@ -"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[1971],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,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=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.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,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(r),f=o,m=d["".concat(l,".").concat(f)]||d[f]||u[f]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));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]=d;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 s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(7462),o=(r(7294),r(3905));const a={id:"engineertoolbox",title:"\u5de5\u7a0b\u5e08\u8f6f\u4ef6\u5de5\u5177\u7bb1"},i=void 0,c={unversionedId:"engineertoolbox",id:"engineertoolbox",title:"\u5de5\u7a0b\u5e08\u8f6f\u4ef6\u5de5\u5177\u7bb1",description:"\u8bf4\u660e",source:"@site/docs/engineertoolbox.mdx",sourceDirName:".",slug:"/engineertoolbox",permalink:"/touchsocket/docs/engineertoolbox",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/engineertoolbox.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"engineertoolbox",title:"\u5de5\u7a0b\u5e08\u8f6f\u4ef6\u5de5\u5177\u7bb1"},sidebar:"docs",previous:{title:"FPS\u5b9e\u65f6\u6e38\u620f",permalink:"/touchsocket/docs/fpsgame"},next:{title:"\u5165\u95e8\u6307\u5357",permalink:"/touchsocket/docs/startguide"}},l={},s=[{value:"\u8bf4\u660e",id:"\u8bf4\u660e",level:2},{value:"\u754c\u9762\u5c55\u793a",id:"\u754c\u9762\u5c55\u793a",level:2}],p={toc:s};function u(e){let{components:t,...a}=e;return(0,o.kt)("wrapper",(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,o.kt)("p",null,"\u8fd9\u662f\u7fa4\u53cb\u5f00\u53d1\u8005\uff0c\u4f7f\u7528",(0,o.kt)("strong",{parentName:"p"},"TouchRpc"),"\u5f00\u53d1\u7684\u4e00\u4e2a\u5185\u90e8\u5de5\u7a0b\u5e08\u8f6f\u4ef6\u5de5\u5177\u7bb1 \u3002"),(0,o.kt)("h2",{id:"\u754c\u9762\u5c55\u793a"},"\u754c\u9762\u5c55\u793a"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"1",src:r(8957).Z,width:"1500",height:"1202"}),"\n",(0,o.kt)("img",{alt:"2",src:r(839).Z,width:"1500",height:"711"}),"\n",(0,o.kt)("img",{alt:"3",src:r(3518).Z,width:"1500",height:"611"})))}u.isMDXComponent=!0},8957:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/engineertoolbox-1-f4ef22b000dfa103a5211d15e8591fae.jpg"},839:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/engineertoolbox-2-4adfa904169e408a00e38870aa82a0c4.jpg"},3518:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/engineertoolbox-3-e6f715f5501aebfc7fd7dec0b21bff0f.jpg"}}]); \ No newline at end of file +"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[1971],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,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=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.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,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(r),f=o,m=d["".concat(l,".").concat(f)]||d[f]||u[f]||a;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));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]=d;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 s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(7462),o=(r(7294),r(3905));const a={id:"engineertoolbox",title:"\u5de5\u7a0b\u5e08\u8f6f\u4ef6\u5de5\u5177\u7bb1"},i=void 0,c={unversionedId:"engineertoolbox",id:"engineertoolbox",title:"\u5de5\u7a0b\u5e08\u8f6f\u4ef6\u5de5\u5177\u7bb1",description:"\u8bf4\u660e",source:"@site/docs/engineertoolbox.mdx",sourceDirName:".",slug:"/engineertoolbox",permalink:"/touchsocket/docs/engineertoolbox",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/engineertoolbox.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"engineertoolbox",title:"\u5de5\u7a0b\u5e08\u8f6f\u4ef6\u5de5\u5177\u7bb1"},sidebar:"docs",previous:{title:"FPS\u5b9e\u65f6\u6e38\u620f",permalink:"/touchsocket/docs/fpsgame"},next:{title:"\u5165\u95e8\u6307\u5357",permalink:"/touchsocket/docs/startguide"}},l={},s=[{value:"\u8bf4\u660e",id:"\u8bf4\u660e",level:2},{value:"\u754c\u9762\u5c55\u793a",id:"\u754c\u9762\u5c55\u793a",level:2}],p={toc:s};function u(e){let{components:t,...a}=e;return(0,o.kt)("wrapper",(0,n.Z)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,o.kt)("p",null,"\u8fd9\u662f\u7fa4\u53cb\u5f00\u53d1\u8005\uff0c\u4f7f\u7528",(0,o.kt)("strong",{parentName:"p"},"TouchRpc"),"\u5f00\u53d1\u7684\u4e00\u4e2a\u5185\u90e8\u5de5\u7a0b\u5e08\u8f6f\u4ef6\u5de5\u5177\u7bb1 \u3002"),(0,o.kt)("h2",{id:"\u754c\u9762\u5c55\u793a"},"\u754c\u9762\u5c55\u793a"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"1",src:r(9319).Z,width:"1500",height:"1202"}),"\n",(0,o.kt)("img",{alt:"2",src:r(1882).Z,width:"1500",height:"711"}),"\n",(0,o.kt)("img",{alt:"3",src:r(7434).Z,width:"1500",height:"611"})))}u.isMDXComponent=!0},9319:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/engineertoolbox-1-f4ef22b000dfa103a5211d15e8591fae.jpg"},1882:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/engineertoolbox-2-4adfa904169e408a00e38870aa82a0c4.jpg"},7434:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/engineertoolbox-3-e6f715f5501aebfc7fd7dec0b21bff0f.jpg"}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/b992e8b3.126e3db7.js b/handbook/build/assets/js/b992e8b3.0d37aba2.js similarity index 98% rename from handbook/build/assets/js/b992e8b3.126e3db7.js rename to handbook/build/assets/js/b992e8b3.0d37aba2.js index 10d3624237d7ff4909a53307ee3c303c95903369..7fb97a7734374d2d0939a88da9b10a0c04c1ebe5 100644 --- a/handbook/build/assets/js/b992e8b3.126e3db7.js +++ b/handbook/build/assets/js/b992e8b3.0d37aba2.js @@ -1 +1 @@ -"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[6128],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>y});var l=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 r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=l.createContext({}),s=function(e){var t=l.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=s(e.components);return l.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},k=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),k=s(n),y=a,d=k["".concat(c,".").concat(y)]||k[y]||p[y]||r;return n?l.createElement(d,o(o({ref:t},u),{},{components:n})):l.createElement(d,o({ref:t},u))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=k;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,o[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>i,toc:()=>s});var l=n(7462),a=(n(7294),n(3905));const r={id:"ipackage",title:"\u5305\u5e8f\u5217\u5316\u6a21\u5f0f"},o=void 0,i={unversionedId:"ipackage",id:"ipackage",title:"\u5305\u5e8f\u5217\u5316\u6a21\u5f0f",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/ipackage.mdx",sourceDirName:".",slug:"/ipackage",permalink:"/touchsocket/docs/ipackage",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/ipackage.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"ipackage",title:"\u5305\u5e8f\u5217\u5316\u6a21\u5f0f"},sidebar:"docs",previous:{title:"\u63d2\u4ef6\u7cfb\u7edf",permalink:"/touchsocket/docs/pluginsmanager"},next:{title:"\u5176\u4ed6\u76f8\u5173\u529f\u80fd\u7c7b",permalink:"/touchsocket/docs/othercore"}},c={},s=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u7279\u70b9",id:"\u4e8c\u7279\u70b9",level:2},{value:"\u4e09\u3001\u4f7f\u7528",id:"\u4e09\u4f7f\u7528",level:2},{value:"\u56db\u3001\u6027\u80fd\u8bc4\u6d4b",id:"\u56db\u6027\u80fd\u8bc4\u6d4b",level:2}],u={toc:s};function p(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,l.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,a.kt)("p",null,"\u5305\u5e8f\u5217\u5316\u6a21\u5f0f\u662f\u4e3a\u4e86\u89e3\u51b3",(0,a.kt)("strong",{parentName:"p"},"\u6781\u9650\u5e8f\u5217\u5316"),"\u7684\u95ee\u9898\u3002\u5e38\u89c4\u5e8f\u5217\u5316\u7684\u74f6\u9888\uff0c\u4e3b\u8981\u662f\u53cd\u5c04\u3001\u8868\u8fbe\u5f0f\u6811\u3001\u521b\u5efa\u5bf9\u8c61\u7b49\u51e0\u4e2a\u65b9\u9762\uff0c\u8fd9\u51e0\u4e2a\u95ee\u9898\u5728\u8fd0\u884c\u65f6\u9636\u6bb5\uff0c\u90fd\u6ca1\u6709\u4e00\u4e2a\u597d\u7684\u89e3\u51b3\u65b9\u6848\u3002\u76ee\u524d\u5728net6\u4ee5\u540e\uff0c\u5fae\u8f6f\u5927\u529b\u652f\u6301\u6e90\u4ee3\u7801\u751f\u6210\uff0c\u8fd9\u4f7f\u5f97\u8fd9\u7c7b\u95ee\u9898\u5f97\u5230\u4e86\u5f88\u5927\u7a0b\u5ea6\u7684\u89e3\u51b3\u3002\u4f46\u662f\u5bf9\u4e8e\u8001\u9879\u76ee\uff0c\u6216\u8005\u65e0\u6cd5\u4f7f\u7528net6\u548cvs2022\u4ee5\u4e0a\u7684\u9879\u76ee\uff0c\u662f\u65e0\u6cd5\u4f7f\u7528\u7684\u3002\u6240\u4ee5\uff0c\u8fd9\u65f6\u5019\u5305\u5e8f\u5217\u5316\u6a21\u5f0f\u5c31\u663e\u5f97\u975e\u5e38\u9700\u8981\u4e86\u3002"),(0,a.kt)("h2",{id:"\u4e8c\u7279\u70b9"},"\u4e8c\u3001\u7279\u70b9"),(0,a.kt)("p",null,"\u3010\u4f18\u70b9\u3011"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u7b80\u5355\u3001\u53ef\u9760\u3001\u9ad8\u6548"),(0,a.kt)("li",{parentName:"ol"},"\u53ef\u4ee5\u652f\u6301\u6240\u6709\u7c7b\u578b\uff08\u9700\u8981\u81ea\u5df1\u7f16\u5199\u4ee3\u7801\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u6570\u636e\u91cf\u6700\u5c11\uff08\u4ece\u7406\u8bba\u6765\u8bf4\u8fd9\u662f\u5360\u6570\u636e\u91cf\u6700\u8f7b\u91cf\u7684\u8bbe\u8ba1\uff09")),(0,a.kt)("p",null,"\u3010\u7f3a\u70b9\u3011"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8981\u6c42\u5e8f\u5217\u5316\u7aef\u548c\u53cd\u5e8f\u5217\u5316\u7aef\u5fc5\u987b\u4fdd\u6301\u4e00\u81f4\uff0c\u53ef\u4ee5\u5b58\u5728\u6570\u636e\u5dee\u5f02\uff0c\u4f46\u662f\u4e0d\u80fd\u51fa\u73b0\u6570\u636e\u65ad\u5c42\u3002")),(0,a.kt)("h2",{id:"\u4e09\u4f7f\u7528"},"\u4e09\u3001\u4f7f\u7528"),(0,a.kt)("p",null,"\u3010\u5b9e\u4f53\u7c7b\u3011"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"class MyClass : IPackage\n{\n public int P1 { get; set; }\n public string P2 { get; set; }\n public char P3 { get; set; }\n public double P4 { get; set; }\n public List P5 { get; set; }\n public Dictionary P6 { get; set; }\n public void Package(ByteBlock byteBlock)\n {\n //\u57fa\u7840\u7c7b\u578b\u76f4\u63a5\u5199\u5165\u3002\n byteBlock.Write(P1);\n byteBlock.Write(P2);\n byteBlock.Write(P3);\n byteBlock.Write(P4);\n\n //\u96c6\u5408\u7c7b\u578b\uff0c\u53ef\u4ee5\u5148\u5224\u65ad\u662f\u5426\u4e3anull\n byteBlock.WriteIsNull(P5);\n if (P5 != null)\n {\n //\u5982\u679c\u4e0d\u4e3anull\n //\u5c31\u5148\u5199\u5165\u96c6\u5408\u957f\u5ea6\n //\u7136\u540e\u904d\u5386\u5c06\u6bcf\u4e2a\u9879\u5199\u5165\n byteBlock.Write(P5.Count);\n foreach (var item in P5)\n {\n byteBlock.Write(item);\n }\n }\n\n //\u5b57\u5178\u7c7b\u578b\uff0c\u53ef\u4ee5\u5148\u5224\u65ad\u662f\u5426\u4e3anull\n byteBlock.WriteIsNull(P6);\n if (P6 != null)\n {\n //\u5982\u679c\u4e0d\u4e3anull\n //\u5c31\u5148\u5199\u5165\u5b57\u5178\u957f\u5ea6\n //\u7136\u540e\u904d\u5386\u5c06\u6bcf\u4e2a\u9879\uff0c\u6309\u952e\u3001\u503c\u5199\u5165\n byteBlock.Write(P6.Count);\n foreach (var item in P6)\n {\n byteBlock.Write(item.Key);\n byteBlock.WritePackage(item.Value);//\u56e0\u4e3a\u503cMyClassModel\u5b9e\u73b0\u4e86IPackage\uff0c\u6240\u4ee5\u53ef\u4ee5\u76f4\u63a5\u5199\u5165\n }\n }\n }\n\n public void Unpackage(ByteBlock byteBlock)\n {\n //\u57fa\u7840\u7c7b\u578b\u6309\u5e8f\u8bfb\u53d6\u3002\n this.P1 = byteBlock.ReadInt32();\n this.P2 = byteBlock.ReadString();\n this.P3 = byteBlock.ReadChar();\n this.P4 = byteBlock.ReadDouble();\n\n var isNull = byteBlock.ReadIsNull();\n if (!isNull)\n {\n int count = byteBlock.ReadInt32();\n var list = new List(count);\n for (int i = 0; i < count; i++)\n {\n list.Add(byteBlock.ReadInt32());\n }\n this.P5 = list;\n }\n\n\n isNull = byteBlock.ReadIsNull();//\u590d\u7528\u524d\u9762\u7684\u53d8\u91cf\uff0c\u7701\u7684\u91cd\u65b0\u58f0\u660e\n if (!isNull)\n {\n int count = byteBlock.ReadInt32();\n var dic = new Dictionary(count);\n for (int i = 0; i < count; i++)\n {\n dic.Add(byteBlock.ReadInt32(), byteBlock.ReadPackage());\n }\n this.P6 = dic;\n }\n }\n}\n\nclass MyClassModel : PackageBase\n{\n public DateTime P1 { get; set; }\n public override void Package(ByteBlock byteBlock)\n {\n byteBlock.Write(P1);\n }\n\n public override void Unpackage(ByteBlock byteBlock)\n {\n this.P1 = byteBlock.ReadDateTime();\n }\n}\n")),(0,a.kt)("p",null,"\u3010\u6253\u5305\u548c\u89e3\u5305\u3011"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"var myClass = new MyClass();\nmyClass.P1 = 1;\nmyClass.P2 = \"\u82e5\u6c5d\u68cb\u8317\";\nmyClass.P3 = 'a';\nmyClass.P4= 3;\n\nmyClass.P5=new List { 1, 2, 3 };\n\nmyClass.P6= new Dictionary() \n{\n { 1,new MyClassModel(){ P1=DateTime.Now} },\n { 2,new MyClassModel(){ P1=DateTime.Now} }\n};\n\nusing (ByteBlock byteBlock=new ByteBlock())\n{\n myClass.Package(byteBlock);//\u6253\u5305\uff0c\u76f8\u5f53\u4e8e\u5e8f\u5217\u5316\n\n byteBlock.Seek(0);//\u5c06\u6d41\u4f4d\u7f6e\u91cd\u7f6e\u4e3a0\n\n var myNewClass = new MyClass();\n myNewClass.Unpackage(byteBlock);//\u89e3\u5305\uff0c\u76f8\u5f53\u4e8e\u53cd\u5e8f\u5217\u5316\n}\n")),(0,a.kt)("h2",{id:"\u56db\u6027\u80fd\u8bc4\u6d4b"},"\u56db\u3001\u6027\u80fd\u8bc4\u6d4b"),(0,a.kt)("p",null,"\u57fa\u51c6\u6d4b\u8bd5\u8868\u660e\uff1a"),(0,a.kt)("p",null,"\u5305\u5e8f\u5217\u5316\u6a21\u5f0f\u548c\u4f7f\u7528\u6e90\u4ee3\u7801\u751f\u6210\u65b9\u5f0f\u5de5\u4f5c\u7684MemoryPack\u51e0\u4e4e\u4e00\u6837\u3002\u6bd4json\u65b9\u5f0f\u5feb\u4e8610\u500d\u591a\uff0c\u6bd4\u5fae\u8f6f\u7684json\u5feb\u4e86\u8fd14\u500d\u3002"),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(9676).Z,width:"1176",height:"275"})))}p.isMDXComponent=!0},9676:(e,t,n)=>{n.d(t,{Z:()=>l});const l=n.p+"assets/images/ipackage-1-2f48a97c1a2568b875aab9b5a51de765.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[6128],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>y});var l=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 r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=l.createContext({}),s=function(e){var t=l.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=s(e.components);return l.createElement(c.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},k=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),k=s(n),y=a,d=k["".concat(c,".").concat(y)]||k[y]||p[y]||r;return n?l.createElement(d,o(o({ref:t},u),{},{components:n})):l.createElement(d,o({ref:t},u))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,o=new Array(r);o[0]=k;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i.mdxType="string"==typeof e?e:a,o[1]=i;for(var s=2;s{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>i,toc:()=>s});var l=n(7462),a=(n(7294),n(3905));const r={id:"ipackage",title:"\u5305\u5e8f\u5217\u5316\u6a21\u5f0f"},o=void 0,i={unversionedId:"ipackage",id:"ipackage",title:"\u5305\u5e8f\u5217\u5316\u6a21\u5f0f",description:"\u4e00\u3001\u8bf4\u660e",source:"@site/docs/ipackage.mdx",sourceDirName:".",slug:"/ipackage",permalink:"/touchsocket/docs/ipackage",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/ipackage.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"ipackage",title:"\u5305\u5e8f\u5217\u5316\u6a21\u5f0f"},sidebar:"docs",previous:{title:"\u63d2\u4ef6\u7cfb\u7edf",permalink:"/touchsocket/docs/pluginsmanager"},next:{title:"\u5176\u4ed6\u76f8\u5173\u529f\u80fd\u7c7b",permalink:"/touchsocket/docs/othercore"}},c={},s=[{value:"\u4e00\u3001\u8bf4\u660e",id:"\u4e00\u8bf4\u660e",level:2},{value:"\u4e8c\u3001\u7279\u70b9",id:"\u4e8c\u7279\u70b9",level:2},{value:"\u4e09\u3001\u4f7f\u7528",id:"\u4e09\u4f7f\u7528",level:2},{value:"\u56db\u3001\u6027\u80fd\u8bc4\u6d4b",id:"\u56db\u6027\u80fd\u8bc4\u6d4b",level:2}],u={toc:s};function p(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,l.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u4e00\u8bf4\u660e"},"\u4e00\u3001\u8bf4\u660e"),(0,a.kt)("p",null,"\u5305\u5e8f\u5217\u5316\u6a21\u5f0f\u662f\u4e3a\u4e86\u89e3\u51b3",(0,a.kt)("strong",{parentName:"p"},"\u6781\u9650\u5e8f\u5217\u5316"),"\u7684\u95ee\u9898\u3002\u5e38\u89c4\u5e8f\u5217\u5316\u7684\u74f6\u9888\uff0c\u4e3b\u8981\u662f\u53cd\u5c04\u3001\u8868\u8fbe\u5f0f\u6811\u3001\u521b\u5efa\u5bf9\u8c61\u7b49\u51e0\u4e2a\u65b9\u9762\uff0c\u8fd9\u51e0\u4e2a\u95ee\u9898\u5728\u8fd0\u884c\u65f6\u9636\u6bb5\uff0c\u90fd\u6ca1\u6709\u4e00\u4e2a\u597d\u7684\u89e3\u51b3\u65b9\u6848\u3002\u76ee\u524d\u5728net6\u4ee5\u540e\uff0c\u5fae\u8f6f\u5927\u529b\u652f\u6301\u6e90\u4ee3\u7801\u751f\u6210\uff0c\u8fd9\u4f7f\u5f97\u8fd9\u7c7b\u95ee\u9898\u5f97\u5230\u4e86\u5f88\u5927\u7a0b\u5ea6\u7684\u89e3\u51b3\u3002\u4f46\u662f\u5bf9\u4e8e\u8001\u9879\u76ee\uff0c\u6216\u8005\u65e0\u6cd5\u4f7f\u7528net6\u548cvs2022\u4ee5\u4e0a\u7684\u9879\u76ee\uff0c\u662f\u65e0\u6cd5\u4f7f\u7528\u7684\u3002\u6240\u4ee5\uff0c\u8fd9\u65f6\u5019\u5305\u5e8f\u5217\u5316\u6a21\u5f0f\u5c31\u663e\u5f97\u975e\u5e38\u9700\u8981\u4e86\u3002"),(0,a.kt)("h2",{id:"\u4e8c\u7279\u70b9"},"\u4e8c\u3001\u7279\u70b9"),(0,a.kt)("p",null,"\u3010\u4f18\u70b9\u3011"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u7b80\u5355\u3001\u53ef\u9760\u3001\u9ad8\u6548"),(0,a.kt)("li",{parentName:"ol"},"\u53ef\u4ee5\u652f\u6301\u6240\u6709\u7c7b\u578b\uff08\u9700\u8981\u81ea\u5df1\u7f16\u5199\u4ee3\u7801\uff09"),(0,a.kt)("li",{parentName:"ol"},"\u6570\u636e\u91cf\u6700\u5c11\uff08\u4ece\u7406\u8bba\u6765\u8bf4\u8fd9\u662f\u5360\u6570\u636e\u91cf\u6700\u8f7b\u91cf\u7684\u8bbe\u8ba1\uff09")),(0,a.kt)("p",null,"\u3010\u7f3a\u70b9\u3011"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8981\u6c42\u5e8f\u5217\u5316\u7aef\u548c\u53cd\u5e8f\u5217\u5316\u7aef\u5fc5\u987b\u4fdd\u6301\u4e00\u81f4\uff0c\u53ef\u4ee5\u5b58\u5728\u6570\u636e\u5dee\u5f02\uff0c\u4f46\u662f\u4e0d\u80fd\u51fa\u73b0\u6570\u636e\u65ad\u5c42\u3002")),(0,a.kt)("h2",{id:"\u4e09\u4f7f\u7528"},"\u4e09\u3001\u4f7f\u7528"),(0,a.kt)("p",null,"\u3010\u5b9e\u4f53\u7c7b\u3011"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"class MyClass : IPackage\n{\n public int P1 { get; set; }\n public string P2 { get; set; }\n public char P3 { get; set; }\n public double P4 { get; set; }\n public List P5 { get; set; }\n public Dictionary P6 { get; set; }\n public void Package(ByteBlock byteBlock)\n {\n //\u57fa\u7840\u7c7b\u578b\u76f4\u63a5\u5199\u5165\u3002\n byteBlock.Write(P1);\n byteBlock.Write(P2);\n byteBlock.Write(P3);\n byteBlock.Write(P4);\n\n //\u96c6\u5408\u7c7b\u578b\uff0c\u53ef\u4ee5\u5148\u5224\u65ad\u662f\u5426\u4e3anull\n byteBlock.WriteIsNull(P5);\n if (P5 != null)\n {\n //\u5982\u679c\u4e0d\u4e3anull\n //\u5c31\u5148\u5199\u5165\u96c6\u5408\u957f\u5ea6\n //\u7136\u540e\u904d\u5386\u5c06\u6bcf\u4e2a\u9879\u5199\u5165\n byteBlock.Write(P5.Count);\n foreach (var item in P5)\n {\n byteBlock.Write(item);\n }\n }\n\n //\u5b57\u5178\u7c7b\u578b\uff0c\u53ef\u4ee5\u5148\u5224\u65ad\u662f\u5426\u4e3anull\n byteBlock.WriteIsNull(P6);\n if (P6 != null)\n {\n //\u5982\u679c\u4e0d\u4e3anull\n //\u5c31\u5148\u5199\u5165\u5b57\u5178\u957f\u5ea6\n //\u7136\u540e\u904d\u5386\u5c06\u6bcf\u4e2a\u9879\uff0c\u6309\u952e\u3001\u503c\u5199\u5165\n byteBlock.Write(P6.Count);\n foreach (var item in P6)\n {\n byteBlock.Write(item.Key);\n byteBlock.WritePackage(item.Value);//\u56e0\u4e3a\u503cMyClassModel\u5b9e\u73b0\u4e86IPackage\uff0c\u6240\u4ee5\u53ef\u4ee5\u76f4\u63a5\u5199\u5165\n }\n }\n }\n\n public void Unpackage(ByteBlock byteBlock)\n {\n //\u57fa\u7840\u7c7b\u578b\u6309\u5e8f\u8bfb\u53d6\u3002\n this.P1 = byteBlock.ReadInt32();\n this.P2 = byteBlock.ReadString();\n this.P3 = byteBlock.ReadChar();\n this.P4 = byteBlock.ReadDouble();\n\n var isNull = byteBlock.ReadIsNull();\n if (!isNull)\n {\n int count = byteBlock.ReadInt32();\n var list = new List(count);\n for (int i = 0; i < count; i++)\n {\n list.Add(byteBlock.ReadInt32());\n }\n this.P5 = list;\n }\n\n\n isNull = byteBlock.ReadIsNull();//\u590d\u7528\u524d\u9762\u7684\u53d8\u91cf\uff0c\u7701\u7684\u91cd\u65b0\u58f0\u660e\n if (!isNull)\n {\n int count = byteBlock.ReadInt32();\n var dic = new Dictionary(count);\n for (int i = 0; i < count; i++)\n {\n dic.Add(byteBlock.ReadInt32(), byteBlock.ReadPackage());\n }\n this.P6 = dic;\n }\n }\n}\n\nclass MyClassModel : PackageBase\n{\n public DateTime P1 { get; set; }\n public override void Package(ByteBlock byteBlock)\n {\n byteBlock.Write(P1);\n }\n\n public override void Unpackage(ByteBlock byteBlock)\n {\n this.P1 = byteBlock.ReadDateTime();\n }\n}\n")),(0,a.kt)("p",null,"\u3010\u6253\u5305\u548c\u89e3\u5305\u3011"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-csharp"},"var myClass = new MyClass();\nmyClass.P1 = 1;\nmyClass.P2 = \"\u82e5\u6c5d\u68cb\u8317\";\nmyClass.P3 = 'a';\nmyClass.P4= 3;\n\nmyClass.P5=new List { 1, 2, 3 };\n\nmyClass.P6= new Dictionary() \n{\n { 1,new MyClassModel(){ P1=DateTime.Now} },\n { 2,new MyClassModel(){ P1=DateTime.Now} }\n};\n\nusing (ByteBlock byteBlock=new ByteBlock())\n{\n myClass.Package(byteBlock);//\u6253\u5305\uff0c\u76f8\u5f53\u4e8e\u5e8f\u5217\u5316\n\n byteBlock.Seek(0);//\u5c06\u6d41\u4f4d\u7f6e\u91cd\u7f6e\u4e3a0\n\n var myNewClass = new MyClass();\n myNewClass.Unpackage(byteBlock);//\u89e3\u5305\uff0c\u76f8\u5f53\u4e8e\u53cd\u5e8f\u5217\u5316\n}\n")),(0,a.kt)("h2",{id:"\u56db\u6027\u80fd\u8bc4\u6d4b"},"\u56db\u3001\u6027\u80fd\u8bc4\u6d4b"),(0,a.kt)("p",null,"\u57fa\u51c6\u6d4b\u8bd5\u8868\u660e\uff1a"),(0,a.kt)("p",null,"\u5305\u5e8f\u5217\u5316\u6a21\u5f0f\u548c\u4f7f\u7528\u6e90\u4ee3\u7801\u751f\u6210\u65b9\u5f0f\u5de5\u4f5c\u7684MemoryPack\u51e0\u4e4e\u4e00\u6837\u3002\u6bd4json\u65b9\u5f0f\u5feb\u4e8610\u500d\u591a\uff0c\u6bd4\u5fae\u8f6f\u7684json\u5feb\u4e86\u8fd14\u500d\u3002"),(0,a.kt)("p",null,(0,a.kt)("img",{src:n(4635).Z,width:"1176",height:"275"})))}p.isMDXComponent=!0},4635:(e,t,n)=>{n.d(t,{Z:()=>l});const l=n.p+"assets/images/ipackage-1-2f48a97c1a2568b875aab9b5a51de765.png"}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/bcf858d2.34006a0b.js b/handbook/build/assets/js/bcf858d2.48dccb66.js similarity index 96% rename from handbook/build/assets/js/bcf858d2.34006a0b.js rename to handbook/build/assets/js/bcf858d2.48dccb66.js index 241a0df78e69f0b96fba17ad5ed411a7495c379e..1b4b4634d822129cd7eab86d303f7feff4b1a559 100644 --- a/handbook/build/assets/js/bcf858d2.34006a0b.js +++ b/handbook/build/assets/js/bcf858d2.48dccb66.js @@ -1 +1 @@ -"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[7986],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,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 i(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 a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.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,o=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(r),f=o,m=d["".concat(l,".").concat(f)]||d[f]||u[f]||i;return r?n.createElement(m,a(a({ref:t},p),{},{components:r})):n.createElement(m,a({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=d;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,a[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7462),o=(r(7294),r(3905));const i={id:"filesynchronization",title:"\u6587\u4ef6\u540c\u6b65\u7cfb\u7edf"},a=void 0,c={unversionedId:"filesynchronization",id:"filesynchronization",title:"\u6587\u4ef6\u540c\u6b65\u7cfb\u7edf",description:"\u5b9a\u5236\u65b9",source:"@site/docs/filesynchronization.mdx",sourceDirName:".",slug:"/filesynchronization",permalink:"/touchsocket/docs/filesynchronization",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/filesynchronization.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"filesynchronization",title:"\u6587\u4ef6\u540c\u6b65\u7cfb\u7edf"},sidebar:"docs",previous:{title:"\u8fdc\u7a0b\u76d1\u6d4b\u3001\u63a7\u5236\u9879\u76ee",permalink:"/touchsocket/docs/remotemonitoring"},next:{title:"\u6570\u636e\u8f6c\u53d1\u9879\u76ee",permalink:"/touchsocket/docs/dataforwarding"}},l={},s=[{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}],p={toc:s};function u(e){let{components:t,...i}=e;return(0,o.kt)("wrapper",(0,n.Z)({},p,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u5b9a\u5236\u65b9"},"\u5b9a\u5236\u65b9"),(0,o.kt)("p",null,"\u7f51\u53cb\u201c\u9676\u201d"),(0,o.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,o.kt)("p",null,"\u5e94\u8be5\u7f51\u53cb\u8981\u6c42\uff0c\u9700\u8981\u5f00\u53d1\u4e00\u4e2a\u670d\u52a1\u5668\uff0c\u4e00\u4e2a\u5ba2\u6237\u7aef\uff0c\u5ba2\u6237\u7aef\u7684\u804c\u80fd\u5c31\u662f\u540c\u6b65\u672c\u5730\u6587\u4ef6\u670d\u52a1\u5668\u3002\u6709\u70b9\u7c7b\u4f3c",(0,o.kt)("strong",{parentName:"p"},"OneDrive"),"\u3002"),(0,o.kt)("h2",{id:"\u6280\u672f\u70b9"},"\u6280\u672f\u70b9"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u6570\u636e\u540c\u6b65\uff1a\u8bbe\u7f6e\u914d\u7f6e\u6570\u636e\u3001\u9879\u76ee\u6587\u4ef6\u6570\u636e\u7b49\u3002"),(0,o.kt)("li",{parentName:"ul"},"\u6587\u4ef6\uff1a\u65ad\u70b9\u7eed\u4f20\u3001\u6362\u7f51\u7eed\u4f20\u3002"),(0,o.kt)("li",{parentName:"ul"},"\u767b\u5f55\uff1a\u767b\u5f55\u6388\u6743\u3002\u767b\u5f55\u9a8c\u8bc1\u3002")),(0,o.kt)("h2",{id:"\u6548\u679c"},"\u6548\u679c"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"image.png",src:r(2917).Z,width:"1500",height:"677"})))}u.isMDXComponent=!0},2917:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/filesynchronization-1-d586ade9a477965b397c0387e95f9fbe.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[7986],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,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 i(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 a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.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,o=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(r),f=o,m=d["".concat(l,".").concat(f)]||d[f]||u[f]||i;return r?n.createElement(m,a(a({ref:t},p),{},{components:r})):n.createElement(m,a({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=d;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,a[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7462),o=(r(7294),r(3905));const i={id:"filesynchronization",title:"\u6587\u4ef6\u540c\u6b65\u7cfb\u7edf"},a=void 0,c={unversionedId:"filesynchronization",id:"filesynchronization",title:"\u6587\u4ef6\u540c\u6b65\u7cfb\u7edf",description:"\u5b9a\u5236\u65b9",source:"@site/docs/filesynchronization.mdx",sourceDirName:".",slug:"/filesynchronization",permalink:"/touchsocket/docs/filesynchronization",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/filesynchronization.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"filesynchronization",title:"\u6587\u4ef6\u540c\u6b65\u7cfb\u7edf"},sidebar:"docs",previous:{title:"\u8fdc\u7a0b\u76d1\u6d4b\u3001\u63a7\u5236\u9879\u76ee",permalink:"/touchsocket/docs/remotemonitoring"},next:{title:"\u6570\u636e\u8f6c\u53d1\u9879\u76ee",permalink:"/touchsocket/docs/dataforwarding"}},l={},s=[{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}],p={toc:s};function u(e){let{components:t,...i}=e;return(0,o.kt)("wrapper",(0,n.Z)({},p,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u5b9a\u5236\u65b9"},"\u5b9a\u5236\u65b9"),(0,o.kt)("p",null,"\u7f51\u53cb\u201c\u9676\u201d"),(0,o.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,o.kt)("p",null,"\u5e94\u8be5\u7f51\u53cb\u8981\u6c42\uff0c\u9700\u8981\u5f00\u53d1\u4e00\u4e2a\u670d\u52a1\u5668\uff0c\u4e00\u4e2a\u5ba2\u6237\u7aef\uff0c\u5ba2\u6237\u7aef\u7684\u804c\u80fd\u5c31\u662f\u540c\u6b65\u672c\u5730\u6587\u4ef6\u670d\u52a1\u5668\u3002\u6709\u70b9\u7c7b\u4f3c",(0,o.kt)("strong",{parentName:"p"},"OneDrive"),"\u3002"),(0,o.kt)("h2",{id:"\u6280\u672f\u70b9"},"\u6280\u672f\u70b9"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u6570\u636e\u540c\u6b65\uff1a\u8bbe\u7f6e\u914d\u7f6e\u6570\u636e\u3001\u9879\u76ee\u6587\u4ef6\u6570\u636e\u7b49\u3002"),(0,o.kt)("li",{parentName:"ul"},"\u6587\u4ef6\uff1a\u65ad\u70b9\u7eed\u4f20\u3001\u6362\u7f51\u7eed\u4f20\u3002"),(0,o.kt)("li",{parentName:"ul"},"\u767b\u5f55\uff1a\u767b\u5f55\u6388\u6743\u3002\u767b\u5f55\u9a8c\u8bc1\u3002")),(0,o.kt)("h2",{id:"\u6548\u679c"},"\u6548\u679c"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"image.png",src:r(3924).Z,width:"1500",height:"677"})))}u.isMDXComponent=!0},3924:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/filesynchronization-1-d586ade9a477965b397c0387e95f9fbe.png"}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/c8245f17.2b463672.js b/handbook/build/assets/js/c8245f17.2b463672.js deleted file mode 100644 index bc412a5bd153eca84caaedea86610c3f6c5e354b..0000000000000000000000000000000000000000 --- a/handbook/build/assets/js/c8245f17.2b463672.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[7436],{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 i(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 a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),m=s(r),f=o,v=m["".concat(l,".").concat(f)]||m[f]||d[f]||i;return r?n.createElement(v,a(a({ref:t},u),{},{components:r})):n.createElement(v,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;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,a[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7462),o=(r(7294),r(3905));const i={id:"remotemonitoring",title:"\u8fdc\u7a0b\u76d1\u6d4b\u3001\u63a7\u5236\u9879\u76ee"},a=void 0,c={unversionedId:"remotemonitoring",id:"remotemonitoring",title:"\u8fdc\u7a0b\u76d1\u6d4b\u3001\u63a7\u5236\u9879\u76ee",description:"\u5b9a\u5236\u65b9",source:"@site/docs/remotemonitoring.mdx",sourceDirName:".",slug:"/remotemonitoring",permalink:"/touchsocket/docs/remotemonitoring",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/remotemonitoring.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"remotemonitoring",title:"\u8fdc\u7a0b\u76d1\u6d4b\u3001\u63a7\u5236\u9879\u76ee"},sidebar:"docs",previous:{title:"WPF\u754c\u9762\u3001\u6587\u4ef6\u4f20\u8f93\u9879\u76ee",permalink:"/touchsocket/docs/wpfuifiletransfer"},next:{title:"\u6587\u4ef6\u540c\u6b65\u7cfb\u7edf",permalink:"/touchsocket/docs/filesynchronization"}},l={},s=[{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:s};function d(e){let{components:t,...i}=e;return(0,o.kt)("wrapper",(0,n.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u5b9a\u5236\u65b9"},"\u5b9a\u5236\u65b9"),(0,o.kt)("p",null,"\u7f51\u53cb "),(0,o.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,o.kt)("p",null,"\u5e94\u8be5\u7f51\u53cb\u8981\u6c42\uff0c\u57fa\u672c\u5b8c\u6210\u4e86\u9884\u5b9a\u7684\u6240\u6709\u529f\u80fd\uff0c\u5305\u62ec\u8fdc\u7a0b\u66f4\u65b0\u3001\u8fdc\u7a0b\u5c4f\u5e55\u76d1\u6d4b\u3001\u5c4f\u5e55\u64cd\u4f5c\u3001\u8fdc\u7a0b\u6587\u4ef6\u8d44\u6e90\u7ba1\u7406\u5668\u3001\u8fdc\u7a0b\u63a7\u5236\u53f0\u3001\u8fdc\u7a0b\u6ce8\u518c\u8868\u64cd\u4f5c\u3001\u8fdc\u7a0b\u6587\u4ef6\u64cd\u4f5c\uff08\u5220\u9664\u3001\u590d\u5236\u3001\u91cd\u547d\u540d\u3001\u538b\u7f29\uff09\u3001\u7b49\u7b49\u3002"),(0,o.kt)("h2",{id:"\u6280\u672f\u70b9"},"\u6280\u672f\u70b9"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u6574\u4f53\u754c\u9762\uff1a\u5e94\u5b9a\u5236\u65b9\u8981\u6c42\uff0c\u754c\u9762\u4f7f\u7528\u539f\u59cb\u63a7\u4ef6\u3002"),(0,o.kt)("li",{parentName:"ul"},"\u5404\u79cd\u8fdc\u7a0b\u64cd\u4f5c\uff1a\u5747\u91c7\u7528\u7684\u662fRRQM\u901a\u4fe1\u6846\u67b6\u3002")),(0,o.kt)("h2",{id:"\u6548\u679c"},"\u6548\u679c"),(0,o.kt)("p",null,"\u3010\u5ba2\u6237\u7aef\u2014\u2014\u88ab\u63a7\u5236\u7aef\u3011"),(0,o.kt)("p",null,"\u5ba2\u6237\u7aef\u662f\u4e2awinform\u7684\u65e0\u754c\u9762\u7a0b\u5e8f\u3002"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"image.png",src:r(5906).Z,width:"317",height:"160"})),(0,o.kt)("p",null,"\u3010\u670d\u52a1\u5668\u2014\u2014\u7ba1\u7406\u7aef\u3011\n",(0,o.kt)("img",{alt:"1.gif",src:r(2639).Z,width:"2002",height:"1196"}),"\n",(0,o.kt)("img",{alt:"2.gif",src:r(6171).Z,width:"2002",height:"1196"}),"\n",(0,o.kt)("img",{alt:"3.gif",src:r(7107).Z,width:"2002",height:"1196"}),"\n",(0,o.kt)("img",{alt:"4.gif",src:r(5036).Z,width:"2002",height:"1196"}),"\n",(0,o.kt)("img",{alt:"5.gif",src:r(9063).Z,width:"2002",height:"1196"})))}d.isMDXComponent=!0},5906:(e,t,r)=>{r.d(t,{Z:()=>n});const n="data:image/png;base64,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"},2639:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/remotemonitoring-2-5c74840e35ae767d7cf69f547a67de94.gif"},6171:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/remotemonitoring-3-a3933fd43dae5dbd36a20de2a4eab122.gif"},7107:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/remotemonitoring-4-6f88f3a5b775c025524a73109d71a925.gif"},5036:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/remotemonitoring-5-34a53f7476270e9d9624009686d1d365.gif"},9063:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/remotemonitoring-6-1cf6a6a157babffbaa8a15e2d8cf26a0.gif"}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/c8245f17.e67a1736.js b/handbook/build/assets/js/c8245f17.e67a1736.js new file mode 100644 index 0000000000000000000000000000000000000000..46e2be4043a3a2eb95f56f470dd531d361dd89c5 --- /dev/null +++ b/handbook/build/assets/js/c8245f17.e67a1736.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[7436],{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 i(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 a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),m=s(r),f=o,v=m["".concat(l,".").concat(f)]||m[f]||d[f]||i;return r?n.createElement(v,a(a({ref:t},u),{},{components:r})):n.createElement(v,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=m;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,a[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>s});var n=r(7462),o=(r(7294),r(3905));const i={id:"remotemonitoring",title:"\u8fdc\u7a0b\u76d1\u6d4b\u3001\u63a7\u5236\u9879\u76ee"},a=void 0,c={unversionedId:"remotemonitoring",id:"remotemonitoring",title:"\u8fdc\u7a0b\u76d1\u6d4b\u3001\u63a7\u5236\u9879\u76ee",description:"\u5b9a\u5236\u65b9",source:"@site/docs/remotemonitoring.mdx",sourceDirName:".",slug:"/remotemonitoring",permalink:"/touchsocket/docs/remotemonitoring",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/remotemonitoring.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"remotemonitoring",title:"\u8fdc\u7a0b\u76d1\u6d4b\u3001\u63a7\u5236\u9879\u76ee"},sidebar:"docs",previous:{title:"WPF\u754c\u9762\u3001\u6587\u4ef6\u4f20\u8f93\u9879\u76ee",permalink:"/touchsocket/docs/wpfuifiletransfer"},next:{title:"\u6587\u4ef6\u540c\u6b65\u7cfb\u7edf",permalink:"/touchsocket/docs/filesynchronization"}},l={},s=[{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:s};function d(e){let{components:t,...i}=e;return(0,o.kt)("wrapper",(0,n.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u5b9a\u5236\u65b9"},"\u5b9a\u5236\u65b9"),(0,o.kt)("p",null,"\u7f51\u53cb "),(0,o.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,o.kt)("p",null,"\u5e94\u8be5\u7f51\u53cb\u8981\u6c42\uff0c\u57fa\u672c\u5b8c\u6210\u4e86\u9884\u5b9a\u7684\u6240\u6709\u529f\u80fd\uff0c\u5305\u62ec\u8fdc\u7a0b\u66f4\u65b0\u3001\u8fdc\u7a0b\u5c4f\u5e55\u76d1\u6d4b\u3001\u5c4f\u5e55\u64cd\u4f5c\u3001\u8fdc\u7a0b\u6587\u4ef6\u8d44\u6e90\u7ba1\u7406\u5668\u3001\u8fdc\u7a0b\u63a7\u5236\u53f0\u3001\u8fdc\u7a0b\u6ce8\u518c\u8868\u64cd\u4f5c\u3001\u8fdc\u7a0b\u6587\u4ef6\u64cd\u4f5c\uff08\u5220\u9664\u3001\u590d\u5236\u3001\u91cd\u547d\u540d\u3001\u538b\u7f29\uff09\u3001\u7b49\u7b49\u3002"),(0,o.kt)("h2",{id:"\u6280\u672f\u70b9"},"\u6280\u672f\u70b9"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u6574\u4f53\u754c\u9762\uff1a\u5e94\u5b9a\u5236\u65b9\u8981\u6c42\uff0c\u754c\u9762\u4f7f\u7528\u539f\u59cb\u63a7\u4ef6\u3002"),(0,o.kt)("li",{parentName:"ul"},"\u5404\u79cd\u8fdc\u7a0b\u64cd\u4f5c\uff1a\u5747\u91c7\u7528\u7684\u662fRRQM\u901a\u4fe1\u6846\u67b6\u3002")),(0,o.kt)("h2",{id:"\u6548\u679c"},"\u6548\u679c"),(0,o.kt)("p",null,"\u3010\u5ba2\u6237\u7aef\u2014\u2014\u88ab\u63a7\u5236\u7aef\u3011"),(0,o.kt)("p",null,"\u5ba2\u6237\u7aef\u662f\u4e2awinform\u7684\u65e0\u754c\u9762\u7a0b\u5e8f\u3002"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"image.png",src:r(8840).Z,width:"317",height:"160"})),(0,o.kt)("p",null,"\u3010\u670d\u52a1\u5668\u2014\u2014\u7ba1\u7406\u7aef\u3011\n",(0,o.kt)("img",{alt:"1.gif",src:r(848).Z,width:"2002",height:"1196"}),"\n",(0,o.kt)("img",{alt:"2.gif",src:r(2081).Z,width:"2002",height:"1196"}),"\n",(0,o.kt)("img",{alt:"3.gif",src:r(8004).Z,width:"2002",height:"1196"}),"\n",(0,o.kt)("img",{alt:"4.gif",src:r(4695).Z,width:"2002",height:"1196"}),"\n",(0,o.kt)("img",{alt:"5.gif",src:r(8620).Z,width:"2002",height:"1196"})))}d.isMDXComponent=!0},8840:(e,t,r)=>{r.d(t,{Z:()=>n});const n="data:image/png;base64,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"},848:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/remotemonitoring-2-5c74840e35ae767d7cf69f547a67de94.gif"},2081:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/remotemonitoring-3-a3933fd43dae5dbd36a20de2a4eab122.gif"},8004:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/remotemonitoring-4-6f88f3a5b775c025524a73109d71a925.gif"},4695:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/remotemonitoring-5-34a53f7476270e9d9624009686d1d365.gif"},8620:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/remotemonitoring-6-1cf6a6a157babffbaa8a15e2d8cf26a0.gif"}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/cbd4f89d.cc0b4777.js b/handbook/build/assets/js/cbd4f89d.cc0b4777.js new file mode 100644 index 0000000000000000000000000000000000000000..8be5a41712bc4ac9555d07391e66db6de3d62530 --- /dev/null +++ b/handbook/build/assets/js/cbd4f89d.cc0b4777.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[6390],{3769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/d22033f9.bb3b6314.js b/handbook/build/assets/js/d22033f9.010b9b5d.js similarity index 98% rename from handbook/build/assets/js/d22033f9.bb3b6314.js rename to handbook/build/assets/js/d22033f9.010b9b5d.js index 20c61203d086f3c53c6b998bfbfede4f077537b7..934c07c114d4f4e607ffbaa979ffc610ccc8b603 100644 --- a/handbook/build/assets/js/d22033f9.bb3b6314.js +++ b/handbook/build/assets/js/d22033f9.010b9b5d.js @@ -1 +1 @@ -"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=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=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{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(3288).Z,width:"850",height:"630"})))}k.isMDXComponent=!0},3288:(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([[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=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=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{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 diff --git a/handbook/build/assets/js/e5d5df95.04f1f001.js b/handbook/build/assets/js/e5d5df95.914e895e.js similarity index 95% rename from handbook/build/assets/js/e5d5df95.04f1f001.js rename to handbook/build/assets/js/e5d5df95.914e895e.js index 4a30974670d33d3671333cb3a789c7ec74c4f494..82ab137ee2ae85cfa4af386f3a8e9f45935300be 100644 --- a/handbook/build/assets/js/e5d5df95.04f1f001.js +++ b/handbook/build/assets/js/e5d5df95.914e895e.js @@ -1 +1 @@ -"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[4649],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});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 i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}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},p=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},u={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,a=e.mdxType,o=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=d(r),f=a,m=s["".concat(l,".").concat(f)]||s[f]||u[f]||o;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);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:a,i[1]=c;for(var d=2;d{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var n=r(7462),a=(r(7294),r(3905));const o={id:"dataforwarding",title:"\u6570\u636e\u8f6c\u53d1\u9879\u76ee"},i=void 0,c={unversionedId:"dataforwarding",id:"dataforwarding",title:"\u6570\u636e\u8f6c\u53d1\u9879\u76ee",description:"\u5b9a\u5236\u65b9",source:"@site/docs/dataforwarding.mdx",sourceDirName:".",slug:"/dataforwarding",permalink:"/touchsocket/docs/dataforwarding",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/dataforwarding.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"dataforwarding",title:"\u6570\u636e\u8f6c\u53d1\u9879\u76ee"},sidebar:"docs",previous:{title:"\u6587\u4ef6\u540c\u6b65\u7cfb\u7edf",permalink:"/touchsocket/docs/filesynchronization"},next:{title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee",permalink:"/touchsocket/docs/webdataforwarding"}},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}],p={toc:d};function u(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u5b9a\u5236\u65b9"},"\u5b9a\u5236\u65b9"),(0,a.kt)("p",null,"\u9091*\u7269\u8054\u6709\u9650\u516c\u53f8"),(0,a.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,a.kt)("p",null,"\u5e94\u8be5\u516c\u53f8\u8981\u6c42\uff0c\u5f00\u53d1\u4e00\u4e2a\u80fd\u591f\u8f6c\u53d1\u6570\u636e\u7684\u670d\u52a1\u5668\u3002\u6309\u7167\u4e00\u5b9a\u89c4\u5219\uff0c\u8bbe\u8ba1\u8f6c\u53d1\u89c4\u5219\u3002"),(0,a.kt)("h2",{id:"\u6280\u672f\u70b9"},"\u6280\u672f\u70b9"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u7f51\u7edc\u7f16\u7a0b")),(0,a.kt)("h2",{id:"\u6548\u679c"},"\u6548\u679c"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"image.png",src:r(5432).Z,width:"1978",height:"1189"})))}u.isMDXComponent=!0},5432:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/dataforwarding-1-700ae9bd774c6299f265e8106362a702.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[4649],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>f});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 i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}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},p=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},u={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,a=e.mdxType,o=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=d(r),f=a,m=s["".concat(l,".").concat(f)]||s[f]||u[f]||o;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);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:a,i[1]=c;for(var d=2;d{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var n=r(7462),a=(r(7294),r(3905));const o={id:"dataforwarding",title:"\u6570\u636e\u8f6c\u53d1\u9879\u76ee"},i=void 0,c={unversionedId:"dataforwarding",id:"dataforwarding",title:"\u6570\u636e\u8f6c\u53d1\u9879\u76ee",description:"\u5b9a\u5236\u65b9",source:"@site/docs/dataforwarding.mdx",sourceDirName:".",slug:"/dataforwarding",permalink:"/touchsocket/docs/dataforwarding",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/dataforwarding.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1675770803,formattedLastUpdatedAt:"Feb 7, 2023",frontMatter:{id:"dataforwarding",title:"\u6570\u636e\u8f6c\u53d1\u9879\u76ee"},sidebar:"docs",previous:{title:"\u6587\u4ef6\u540c\u6b65\u7cfb\u7edf",permalink:"/touchsocket/docs/filesynchronization"},next:{title:"Web\u6570\u636e\u8f6c\u53d1Winform\u9879\u76ee",permalink:"/touchsocket/docs/webdataforwarding"}},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}],p={toc:d};function u(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,n.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"\u5b9a\u5236\u65b9"},"\u5b9a\u5236\u65b9"),(0,a.kt)("p",null,"\u9091*\u7269\u8054\u6709\u9650\u516c\u53f8"),(0,a.kt)("h2",{id:"\u8bf4\u660e"},"\u8bf4\u660e"),(0,a.kt)("p",null,"\u5e94\u8be5\u516c\u53f8\u8981\u6c42\uff0c\u5f00\u53d1\u4e00\u4e2a\u80fd\u591f\u8f6c\u53d1\u6570\u636e\u7684\u670d\u52a1\u5668\u3002\u6309\u7167\u4e00\u5b9a\u89c4\u5219\uff0c\u8bbe\u8ba1\u8f6c\u53d1\u89c4\u5219\u3002"),(0,a.kt)("h2",{id:"\u6280\u672f\u70b9"},"\u6280\u672f\u70b9"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u7f51\u7edc\u7f16\u7a0b")),(0,a.kt)("h2",{id:"\u6548\u679c"},"\u6548\u679c"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"image.png",src:r(508).Z,width:"1978",height:"1189"})))}u.isMDXComponent=!0},508:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/dataforwarding-1-700ae9bd774c6299f265e8106362a702.png"}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/eb038c44.bcb595ec.js b/handbook/build/assets/js/eb038c44.bcb595ec.js deleted file mode 100644 index 5053131cfbaf19d962f3e30d36e9e1e3944588d9..0000000000000000000000000000000000000000 --- a/handbook/build/assets/js/eb038c44.bcb595ec.js +++ /dev/null @@ -1 +0,0 @@ -"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 diff --git a/handbook/build/assets/js/f0cb7c64.ae3e9d2f.js b/handbook/build/assets/js/f0cb7c64.ae3e9d2f.js deleted file mode 100644 index 7683a5fdebf210a64d570b49b209b4cdc6f97b35..0000000000000000000000000000000000000000 --- a/handbook/build/assets/js/f0cb7c64.ae3e9d2f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[7978],{3769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/handbook/build/assets/js/main.59afb119.js b/handbook/build/assets/js/main.59afb119.js new file mode 100644 index 0000000000000000000000000000000000000000..1d4577e2429099279ba7ac6b2e1b2e44e3708d9b --- /dev/null +++ b/handbook/build/assets/js/main.59afb119.js @@ -0,0 +1,2 @@ +/*! For license information please see main.59afb119.js.LICENSE.txt */ +(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),o=n(7462),a=n(8356),i=n.n(a),s=n(6887);const c={"01fa1a8d":[()=>n.e(9035).then(n.bind(n,3914)),"@site/docs/terminatorpackageadapter.mdx",3914],"04ff01fb":[()=>Promise.all([n.e(532),n.e(1586)]).then(n.bind(n,4748)),"@site/docs/createtcpservice.mdx",4748],"0654e75d":[()=>n.e(7987).then(n.t.bind(n,5745,19)),"D:\\OpenCode\\TouchSocket\\handbook\\.docusaurus\\docusaurus-plugin-content-pages\\default\\plugin-route-context-module-100.json",5745],"078d73b8":[()=>n.e(4018).then(n.bind(n,7430)),"@site/docs/pipelinedatahandlingadapter.mdx",7430],"09a85799":[()=>n.e(9541).then(n.bind(n,7475)),"@site/docs/tcpcommandlineplugin.mdx",7475],"0a7a9b32":[()=>n.e(7162).then(n.bind(n,2878)),"@site/docs/rpcoption.mdx",2878],"0afce4d0":[()=>n.e(2996).then(n.bind(n,4898)),"@site/docs/customdatahandlingadapter.mdx",4898],"0b10c115":[()=>n.e(2264).then(n.bind(n,2715)),"@site/docs/generateproxydescription.mdx",2715],"0b8ef44c":[()=>n.e(9750).then(n.bind(n,3819)),"@site/docs/xmlrpcdescription.mdx",3819],"0c2b5d1a":[()=>n.e(9925).then(n.bind(n,4348)),"@site/docs/othercore.mdx",4348],"0fc86718":[()=>n.e(2903).then(n.bind(n,8690)),"@site/docs/consoleaction.mdx",8690],"11f9f480":[()=>n.e(2671).then(n.bind(n,7116)),"@site/docs/wscommandlineplugin.mdx",7116],"11fc8f46":[()=>n.e(1317).then(n.bind(n,6854)),"@site/docs/tcpother.mdx",6854],"13b149a4":[()=>n.e(9911).then(n.bind(n,3565)),"@site/docs/appmessenger.mdx",3565],"17443a98":[()=>n.e(1965).then(n.bind(n,2702)),"@site/docs/transferfile.mdx",2702],"177fd31f":[()=>n.e(8300).then(n.bind(n,291)),"@site/docs/webapiservice.mdx",291],17896441:[()=>Promise.all([n.e(532),n.e(9523),n.e(7918)]).then(n.bind(n,7082)),"@theme/DocItem",7082],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,2027)),"@theme/SearchPage",2027],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1c9cad99":[()=>n.e(1285).then(n.bind(n,3230)),"@site/docs/dataadaptertester.mdx",3230],"1ec5dc39":[()=>n.e(7462).then(n.bind(n,5160)),"@site/docs/createtouchrpcservice.mdx",5160],"223951e7":[()=>n.e(631).then(n.bind(n,7183)),"@site/docs/eventbus.mdx",7183],"2740fa0a":[()=>n.e(2645).then(n.bind(n,6559)),"@site/docs/generateproxysourcegeneratordemo.mdx",6559],"28d8f037":[()=>n.e(505).then(n.bind(n,4519)),"@site/docs/adapterdemodescription.mdx",4519],"2c06b999":[()=>n.e(5983).then(n.bind(n,5389)),"@site/docs/createudpsession.mdx",5389],"3030335d":[()=>n.e(2289).then(n.bind(n,9574)),"@site/docs/fixedheaderpackageadapter.mdx",9574],"320af078":[()=>n.e(6373).then(n.bind(n,3312)),"@site/docs/udpdatahandlingadapter.mdx",3312],"329302c4":[()=>n.e(230).then(n.t.bind(n,2776,19)),"D:\\OpenCode\\TouchSocket\\handbook\\.docusaurus\\@easyops-cn\\docusaurus-search-local\\default\\plugin-route-context-module-100.json",2776],"355b4941":[()=>n.e(5683).then(n.bind(n,2214)),"@site/docs/createhttpservice.mdx",2214],"389c2360":[()=>n.e(1687).then(n.bind(n,4873)),"@site/docs/stategridtransmission.mdx",4873],"3ab343cc":[()=>n.e(5873).then(n.bind(n,2855)),"@site/docs/createwebsocketservice.mdx",2855],"3b5f8c2c":[()=>n.e(9171).then(n.bind(n,6807)),"@site/docs/rpcallcontext.mdx",6807],"404aa199":[()=>n.e(4123).then(n.bind(n,8227)),"@site/docs/generateproxyfromserver.mdx",8227],41627674:[()=>n.e(2894).then(n.bind(n,5959)),"@site/docs/createhttpclient.mdx",5959],"41b30073":[()=>n.e(1868).then(n.bind(n,961)),"@site/docs/wsjsonrpc.mdx",961],"430053de":[()=>n.e(803).then(n.bind(n,1714)),"@site/docs/callwebapi.mdx",1714],"47f1b9ba":[()=>n.e(4929).then(n.bind(n,8104)),"@site/docs/httpstaticpageplugin.mdx",8104],"4c79e569":[()=>Promise.all([n.e(532),n.e(8707)]).then(n.bind(n,7271)),"@site/docs/upgrade.mdx",7271],"4d13c877":[()=>n.e(9030).then(n.bind(n,551)),"@site/docs/customfixedheaderdatahandlingadapter.mdx",551],"4e9c6747":[()=>n.e(1168).then(n.bind(n,2673)),"@site/docs/serializationselector.mdx",2673],"4ecf139e":[()=>n.e(5215).then(n.bind(n,7506)),"@site/docs/webdataforwarding.mdx",7506],"5137840a":[()=>n.e(8494).then(n.bind(n,4178)),"@site/docs/description.mdx",4178],"53cff02b":[()=>n.e(9311).then(n.bind(n,7148)),"@site/docs/createwebsocketclient.mdx",7148],"5564008b":[()=>n.e(8560).then(n.bind(n,6852)),"@site/docs/udpwaitingclient.mdx",6852],"578e6f54":[()=>n.e(2375).then(n.bind(n,2467)),"@site/docs/streamtransfer.mdx",2467],"5da97758":[()=>n.e(1161).then(n.bind(n,3842)),"@site/docs/tcpintroduction.mdx",3842],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"6bf8fe32":[()=>Promise.all([n.e(532),n.e(8808)]).then(n.bind(n,7507)),"@site/docs/tlvdatahandlingadapter.mdx",7507],"74ad01de":[()=>n.e(4747).then(n.bind(n,2525)),"@site/docs/websocketverify.mdx",2525],"763782ab":[()=>n.e(1969).then(n.bind(n,3094)),"@site/docs/ilog.mdx",3094],"7a6724ae":[()=>n.e(4456).then(n.bind(n,8759)),"@site/docs/calljsonrpc.mdx",8759],"7b93349f":[()=>n.e(6171).then(n.bind(n,5705)),"@site/docs/dependencyproperty.mdx",5705],"7c171c7d":[()=>n.e(2373).then(n.bind(n,4738)),"@site/docs/callxmlrpc.mdx",4738],"8154dd80":[()=>n.e(908).then(n.bind(n,4071)),"@site/docs/wpfuifiletransfer.mdx",4071],"88be757d":[()=>n.e(1302).then(n.bind(n,9522)),"@site/docs/fpsgame.mdx",9522],"8973b48c":[()=>n.e(3635).then(n.bind(n,753)),"@site/docs/pluginsmanager.mdx",753],"8aa4b8ad":[()=>n.e(1877).then(n.bind(n,2436)),"@site/docs/startguide.mdx",2436],"8c4cc064":[()=>n.e(3214).then(n.bind(n,4046)),"@site/docs/resetid.mdx",4046],"8e1e2f35":[()=>n.e(9198).then(n.bind(n,3286)),"@site/docs/bigfixedheadercustomdatahandlingadapter.mdx",3286],"8e5f0e39":[()=>n.e(9954).then(n.bind(n,4393)),"@site/docs/httpfiletransfer.mdx",4393],"9106ea79":[()=>Promise.all([n.e(532),n.e(9769)]).then(n.bind(n,9882)),"@site/docs/createtouchrpcclient.mdx",9882],"915634cf":[()=>Promise.all([n.e(532),n.e(2022)]).then(n.bind(n,2859)),"@site/docs/reconnection.mdx",2859],"91a311b4":[()=>n.e(4850).then(n.bind(n,2105)),"@site/docs/jsonserialize.mdx",2105],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"94601e7d":[()=>n.e(7278).then(n.bind(n,5623)),"@site/docs/smallfiletransfer.mdx",5623],"94e3a799":[()=>n.e(7453).then(n.bind(n,3475)),"@site/docs/rpcstream.mdx",3475],"965c04d6":[()=>n.e(6505).then(n.bind(n,646)),"@site/docs/jsonrpcservice.mdx",646],"9a8bd036":[()=>n.e(2416).then(n.bind(n,920)),"@site/docs/customunfixedheaderdatahandlingadapter.mdx",920],"9a9e2780":[()=>Promise.all([n.e(532),n.e(4822)]).then(n.bind(n,6859)),"@site/docs/generateproxyfromsourcegenerator.mdx",6859],"9bfb9f12":[()=>n.e(5264).then(n.bind(n,9817)),"@site/docs/fastbinaryformatter.mdx",9817],"9d733026":[()=>n.e(9764).then(n.bind(n,5348)),"@site/docs/websocketheartbeat.mdx",5348],"9e2cc891":[()=>n.e(1895).then(n.bind(n,7688)),"@site/docs/udpbroadcast.mdx",7688],a14859b4:[()=>n.e(9660).then(n.bind(n,7409)),"@site/docs/xmlrpcservice.mdx",7409],a2c90a25:[()=>n.e(8719).then(n.bind(n,8610)),"@site/docs/touchrpcbase.mdx",8610],a46d2111:[()=>n.e(8835).then(n.bind(n,9170)),"@site/docs/touchrpcdescription.mdx",9170],a81d4448:[()=>n.e(6191).then(n.bind(n,1413)),"@site/docs/createtcpclient.mdx",1413],a82e3754:[()=>n.e(1592).then(n.bind(n,6435)),"@site/docs/webapidescription.mdx",6435],aa2c2bac:[()=>n.e(8411).then(n.bind(n,6244)),"@site/docs/touchsocketbitconverter.mdx",6244],aa4c723b:[()=>n.e(6487).then(n.bind(n,5009)),"@site/docs/normaldatahandlingadapter.mdx",5009],adf44bc8:[()=>n.e(9253).then(n.bind(n,7157)),"@site/docs/filepool.mdx",7157],b0d79caf:[()=>n.e(1971).then(n.bind(n,4734)),"@site/docs/engineertoolbox.mdx",4734],b1f68223:[()=>n.e(3285).then(n.bind(n,3387)),"@site/docs/custombetweenanddatahandlingadapter.mdx",3387],b4d3dab5:[()=>n.e(4724).then(n.bind(n,3245)),"@site/docs/cooperation.mdx",3245],b7e03a75:[()=>n.e(3503).then(n.bind(n,8744)),"@site/docs/waitingclient.mdx",8744],b806365f:[()=>Promise.all([n.e(532),n.e(1601)]).then(n.bind(n,4359)),"@site/docs/remotestreamaccess.mdx",4359],b992e8b3:[()=>n.e(6128).then(n.bind(n,8496)),"@site/docs/ipackage.mdx",8496],ba9c7ecd:[()=>n.e(487).then(n.bind(n,6923)),"@site/docs/fixedsizepackageadapter.mdx",6923],babdfbe3:[()=>n.e(3420).then(n.bind(n,2257)),"@site/docs/independentusedatahandlingadapter.mdx",2257],bc87ecb9:[()=>n.e(7586).then(n.bind(n,7112)),"@site/docs/rpcactionfilter.mdx",7112],bcf858d2:[()=>n.e(7986).then(n.bind(n,9620)),"@site/docs/filesynchronization.mdx",9620],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(9523),n.e(4195)]).then(n.bind(n,6959)),"@site/src/pages/index.js",6959],c8245f17:[()=>n.e(7436).then(n.bind(n,287)),"@site/docs/remotemonitoring.mdx",287],c8d1f2bf:[()=>n.e(8032).then(n.bind(n,4139)),"@site/docs/ioc.mdx",4139],cbd4f89d:[()=>n.e(6390).then(n.t.bind(n,3769,19)),"D:\\OpenCode\\TouchSocket\\handbook\\.docusaurus\\docusaurus-plugin-content-docs\\default\\plugin-route-context-module-100.json",3769],ce02ea51:[()=>Promise.all([n.e(532),n.e(7790)]).then(n.bind(n,1290)),"@site/docs/remotefilecontrol.mdx",1290],d22033f9:[()=>n.e(3371).then(n.bind(n,3608)),"@site/docs/donate.mdx",3608],d5d2094c:[()=>n.e(904).then(n.bind(n,1797)),"@site/docs/bytepool.mdx",1797],d6520aa6:[()=>n.e(6050).then(n.bind(n,5833)),"@site/docs/jsonrpcdescription.mdx",5833],d6be6cb7:[()=>Promise.all([n.e(532),n.e(1705)]).then(n.bind(n,6643)),"@site/docs/natservice.mdx",6643],da3959dc:[()=>Promise.all([n.e(532),n.e(1793)]).then(n.bind(n,1184)),"@site/docs/multithreadingfiletransfer.mdx",1184],df41208d:[()=>n.e(8102).then(n.bind(n,439)),"@site/docs/heartbeat.mdx",439],dfe172e5:[()=>n.e(7016).then(n.bind(n,9011)),"@site/docs/createandcallrpc.mdx",9011],e5d5df95:[()=>n.e(4649).then(n.bind(n,8865)),"@site/docs/dataforwarding.mdx",8865],e782541c:[()=>n.e(2934).then(n.bind(n,774)),"@site/docs/udptransmitbigdata.mdx",774],e7e0ef60:[()=>n.e(6746).then(n.bind(n,5869)),"@site/docs/datasecurity.mdx",5869],eafaca75:[()=>n.e(1569).then(n.bind(n,5786)),"@site/docs/datahandleadapter.mdx",5786],eb7c3b1b:[()=>n.e(8610).then(n.bind(n,9130)),"@site/docs/websocketdescription.mdx",9130],f05a39b7:[()=>Promise.all([n.e(532),n.e(1822)]).then(n.bind(n,3968)),"@site/docs/enterprise.mdx",3968],fce76f89:[()=>n.e(138).then(n.bind(n,770)),"@site/docs/adapterdescription.mdx",770]};function l(e){let{error:t,retry:n,pastDelay:o}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(9670),d=n(226);function p(e,t){if("*"===e)return i()({loading:l,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const a=s[`${e}-${t}`],p={},f=[],h=[],m=(0,u.Z)(a);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=c[n];r&&(p[t]=r[0],f.push(r[1]),h.push(r[2]))})),i().Map({loading:l,loader:p,modules:f,webpack:()=>h,render(t,n){const i=JSON.parse(JSON.stringify(a));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let a=i;const s=n.split(".");s.slice(0,-1).forEach((e=>{a=a[e]})),a[s[s.length-1]]=o}));const s=i.__comp;delete i.__comp;const c=i.__context;return delete i.__context,r.createElement(d.z,{value:c},r.createElement(s,(0,o.Z)({},i,n)))}})}const f=[{path:"/touchsocket/search",component:p("/touchsocket/search","f08"),exact:!0},{path:"/touchsocket/docs",component:p("/touchsocket/docs","183"),routes:[{path:"/touchsocket/docs/",component:p("/touchsocket/docs/","cb6"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/adapterdemodescription",component:p("/touchsocket/docs/adapterdemodescription","a95"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/adapterdescription",component:p("/touchsocket/docs/adapterdescription","b0b"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/appmessenger",component:p("/touchsocket/docs/appmessenger","66c"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/bigfixedheadercustomdatahandlingadapter",component:p("/touchsocket/docs/bigfixedheadercustomdatahandlingadapter","6bb"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/bytepool",component:p("/touchsocket/docs/bytepool","ef6"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/calljsonrpc",component:p("/touchsocket/docs/calljsonrpc","fd9"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/callwebapi",component:p("/touchsocket/docs/callwebapi","a42"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/callxmlrpc",component:p("/touchsocket/docs/callxmlrpc","56e"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/consoleaction",component:p("/touchsocket/docs/consoleaction","920"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/cooperation",component:p("/touchsocket/docs/cooperation","cab"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/createandcallrpc",component:p("/touchsocket/docs/createandcallrpc","de5"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/createhttpclient",component:p("/touchsocket/docs/createhttpclient","11e"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/createhttpservice",component:p("/touchsocket/docs/createhttpservice","d76"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/createtcpclient",component:p("/touchsocket/docs/createtcpclient","b72"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/createtcpservice",component:p("/touchsocket/docs/createtcpservice","aad"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/createtouchrpcclient",component:p("/touchsocket/docs/createtouchrpcclient","c57"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/createtouchrpcservice",component:p("/touchsocket/docs/createtouchrpcservice","23d"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/createudpsession",component:p("/touchsocket/docs/createudpsession","539"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/createwebsocketclient",component:p("/touchsocket/docs/createwebsocketclient","58c"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/createwebsocketservice",component:p("/touchsocket/docs/createwebsocketservice","2f1"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/custombetweenanddatahandlingadapter",component:p("/touchsocket/docs/custombetweenanddatahandlingadapter","f13"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/customdatahandlingadapter",component:p("/touchsocket/docs/customdatahandlingadapter","23d"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/customfixedheaderdatahandlingadapter",component:p("/touchsocket/docs/customfixedheaderdatahandlingadapter","6c6"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/customunfixedheaderdatahandlingadapter",component:p("/touchsocket/docs/customunfixedheaderdatahandlingadapter","ce0"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/dataadaptertester",component:p("/touchsocket/docs/dataadaptertester","18e"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/dataforwarding",component:p("/touchsocket/docs/dataforwarding","2ec"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/datahandleadapter",component:p("/touchsocket/docs/datahandleadapter","c50"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/datasecurity",component:p("/touchsocket/docs/datasecurity","c18"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/dependencyproperty",component:p("/touchsocket/docs/dependencyproperty","02c"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/donate",component:p("/touchsocket/docs/donate","bf4"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/engineertoolbox",component:p("/touchsocket/docs/engineertoolbox","11e"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/enterprise",component:p("/touchsocket/docs/enterprise","dc8"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/eventbus",component:p("/touchsocket/docs/eventbus","926"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/fastbinaryformatter",component:p("/touchsocket/docs/fastbinaryformatter","0dc"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/filepool",component:p("/touchsocket/docs/filepool","ca8"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/filesynchronization",component:p("/touchsocket/docs/filesynchronization","4f8"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/fixedheaderpackageadapter",component:p("/touchsocket/docs/fixedheaderpackageadapter","e86"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/fixedsizepackageadapter",component:p("/touchsocket/docs/fixedsizepackageadapter","e8a"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/fpsgame",component:p("/touchsocket/docs/fpsgame","a6d"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/generateproxydescription",component:p("/touchsocket/docs/generateproxydescription","a4f"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/generateproxyfromserver",component:p("/touchsocket/docs/generateproxyfromserver","458"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/generateproxyfromsourcegenerator",component:p("/touchsocket/docs/generateproxyfromsourcegenerator","82f"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/generateproxysourcegeneratordemo",component:p("/touchsocket/docs/generateproxysourcegeneratordemo","426"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/heartbeat",component:p("/touchsocket/docs/heartbeat","01b"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/httpfiletransfer",component:p("/touchsocket/docs/httpfiletransfer","af0"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/httpstaticpageplugin",component:p("/touchsocket/docs/httpstaticpageplugin","82c"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/ilog",component:p("/touchsocket/docs/ilog","2f1"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/independentusedatahandlingadapter",component:p("/touchsocket/docs/independentusedatahandlingadapter","a22"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/ioc",component:p("/touchsocket/docs/ioc","0b7"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/ipackage",component:p("/touchsocket/docs/ipackage","5da"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/jsonrpcdescription",component:p("/touchsocket/docs/jsonrpcdescription","83f"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/jsonrpcservice",component:p("/touchsocket/docs/jsonrpcservice","06e"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/jsonserialize",component:p("/touchsocket/docs/jsonserialize","995"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/multithreadingfiletransfer",component:p("/touchsocket/docs/multithreadingfiletransfer","b72"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/natservice",component:p("/touchsocket/docs/natservice","405"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/normaldatahandlingadapter",component:p("/touchsocket/docs/normaldatahandlingadapter","9cc"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/othercore",component:p("/touchsocket/docs/othercore","943"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/pipelinedatahandlingadapter",component:p("/touchsocket/docs/pipelinedatahandlingadapter","e0b"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/pluginsmanager",component:p("/touchsocket/docs/pluginsmanager","8e0"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/reconnection",component:p("/touchsocket/docs/reconnection","35a"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/remotefilecontrol",component:p("/touchsocket/docs/remotefilecontrol","79b"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/remotemonitoring",component:p("/touchsocket/docs/remotemonitoring","ddf"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/remotestreamaccess",component:p("/touchsocket/docs/remotestreamaccess","e07"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/resetid",component:p("/touchsocket/docs/resetid","256"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/rpcactionfilter",component:p("/touchsocket/docs/rpcactionfilter","dd3"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/rpcallcontext",component:p("/touchsocket/docs/rpcallcontext","f79"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/rpcoption",component:p("/touchsocket/docs/rpcoption","93c"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/rpcstream",component:p("/touchsocket/docs/rpcstream","4f6"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/serializationselector",component:p("/touchsocket/docs/serializationselector","152"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/smallfiletransfer",component:p("/touchsocket/docs/smallfiletransfer","37f"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/startguide",component:p("/touchsocket/docs/startguide","ea6"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/stategridtransmission",component:p("/touchsocket/docs/stategridtransmission","37e"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/streamtransfer",component:p("/touchsocket/docs/streamtransfer","5dc"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/tcpcommandlineplugin",component:p("/touchsocket/docs/tcpcommandlineplugin","1db"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/tcpintroduction",component:p("/touchsocket/docs/tcpintroduction","b37"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/tcpother",component:p("/touchsocket/docs/tcpother","0fb"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/terminatorpackageadapter",component:p("/touchsocket/docs/terminatorpackageadapter","4ab"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/tlvdatahandlingadapter",component:p("/touchsocket/docs/tlvdatahandlingadapter","116"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/touchrpcbase",component:p("/touchsocket/docs/touchrpcbase","7a5"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/touchrpcdescription",component:p("/touchsocket/docs/touchrpcdescription","bcb"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/touchsocketbitconverter",component:p("/touchsocket/docs/touchsocketbitconverter","063"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/transferfile",component:p("/touchsocket/docs/transferfile","88a"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/udpbroadcast",component:p("/touchsocket/docs/udpbroadcast","3b5"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/udpdatahandlingadapter",component:p("/touchsocket/docs/udpdatahandlingadapter","05f"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/udptransmitbigdata",component:p("/touchsocket/docs/udptransmitbigdata","3b2"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/udpwaitingclient",component:p("/touchsocket/docs/udpwaitingclient","d2b"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/upgrade",component:p("/touchsocket/docs/upgrade","8ca"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/waitingclient",component:p("/touchsocket/docs/waitingclient","631"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/webapidescription",component:p("/touchsocket/docs/webapidescription","f37"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/webapiservice",component:p("/touchsocket/docs/webapiservice","136"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/webdataforwarding",component:p("/touchsocket/docs/webdataforwarding","1bb"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/websocketdescription",component:p("/touchsocket/docs/websocketdescription","0d3"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/websocketheartbeat",component:p("/touchsocket/docs/websocketheartbeat","44b"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/websocketverify",component:p("/touchsocket/docs/websocketverify","183"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/wpfuifiletransfer",component:p("/touchsocket/docs/wpfuifiletransfer","ce5"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/wscommandlineplugin",component:p("/touchsocket/docs/wscommandlineplugin","8e5"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/wsjsonrpc",component:p("/touchsocket/docs/wsjsonrpc","b21"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/xmlrpcdescription",component:p("/touchsocket/docs/xmlrpcdescription","4c9"),exact:!0,sidebar:"docs"},{path:"/touchsocket/docs/xmlrpcservice",component:p("/touchsocket/docs/xmlrpcservice","b6f"),exact:!0,sidebar:"docs"}]},{path:"/touchsocket/",component:p("/touchsocket/","c0a"),exact:!0},{path:"*",component:p("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>a});var r=n(7294);const o=r.createContext(!1);function a(e){let{children:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{a(!0)}),[]),r.createElement(o.Provider,{value:n},t)}},9383:(e,t,n)=>{"use strict";var r=n(7294),o=n(3935),a=n(3727),i=n(405),s=n(412);const c=[n(2497),n(3310),n(8320),n(2295),n(4811)];var l=n(723),u=n(6775),d=n(8790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(7462),h=n(5742),m=n(2263),g=n(4996),b=n(6668),v=n(1944),y=n(4711),k=n(9727),E=n(3320),w=n(197);function x(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,m.Z)(),n=(0,y.l)();return r.createElement(h.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:o}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:o})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function S(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.Z)(),o=function(){const{siteConfig:{url:e}}=(0,m.Z)(),{pathname:t}=(0,u.TH)();return e+(0,g.Z)(t)}(),a=t?`${n}${t}`:o;return r.createElement(h.Z,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function _(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(h.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:k.h})),n&&r.createElement(v.d,{image:n}),r.createElement(S,null),r.createElement(x,null),r.createElement(w.Z,{tag:E.HX,locale:e}),r.createElement(h.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const T=new Map;function C(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(l.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var L=n(8934),N=n(8940);function I(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{var r;const o=(null==(r=t.default)?void 0:r[e])??t[e];return null==o?void 0:o(...n)}));return()=>o.forEach((e=>null==e?void 0:e()))}const O=function(e){let{children:t,location:n,previousLocation:o}=e;return(0,r.useLayoutEffect)((()=>{o!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);null==t||t.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:o}),I("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function A(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(l.Z,e))).flat();return Promise.all(t.map((e=>null==e.route.component.preload?void 0:e.route.component.preload())))}class R extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?I("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=I("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),A(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(O,{previousLocation:this.previousLocation,location:t},r.createElement(u.AW,{location:t,render:()=>e}))}}const P=R,D="docusaurus-base-url-issue-banner-container",M="docusaurus-base-url-issue-banner-suggestion-container",F="__DOCUSAURUS_INSERT_BASEURL_BANNER";function z(e){return`\nwindow['${F}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${F}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[F]=!1}),[]),r.createElement(r.Fragment,null,!s.Z.canUseDOM&&r.createElement(h.Z,null,r.createElement("script",null,z(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,m.Z)(),{pathname:n}=(0,u.TH)();return t&&n===e?r.createElement(B,null):null}function j(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:o,localeConfigs:a}}=(0,m.Z)(),i=(0,g.Z)(e),{htmlLang:s,direction:c}=a[o];return r.createElement(h.Z,null,r.createElement("html",{lang:s,dir:c}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var $=n(4763);function H(){const e=(0,d.H)(l.Z),t=(0,u.TH)();return r.createElement($.Z,null,r.createElement(N.M,null,r.createElement(L.t,null,r.createElement(p,null,r.createElement(j,null),r.createElement(_,null),r.createElement(U,null),r.createElement(P,{location:C(t)},e)))))}var Z=n(6887);const V=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{var r;if("undefined"==typeof document)return void n();const o=document.createElement("link");o.setAttribute("rel","prefetch"),o.setAttribute("href",e),o.onload=()=>t(),o.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??(null==(r=document.getElementsByName("script")[0])?void 0:r.parentNode);null==a||a.appendChild(o)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Q=n(9670);const W=new Set,G=new Set,q=()=>{var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},Y={prefetch(e){if(!(e=>!q()&&!G.has(e)&&!W.has(e))(e))return!1;W.add(e);const t=(0,d.f)(l.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(Z).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Q.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?V(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!q()&&!G.has(e))(e)&&(G.add(e),A(e))},K=Object.freeze(Y);if(s.Z.canUseDOM){window.docusaurus=K;const e=o.hydrate;A(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(a.VK,null,r.createElement(H,null))),document.getElementById("__docusaurus"))}))}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>u,M:()=>d});var r=n(7294),o=n(6809);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/touchsocket/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/touchsocket/docs","mainDocId":"description","docs":[{"id":"adapterdemodescription","path":"/touchsocket/docs/adapterdemodescription","sidebar":"docs"},{"id":"adapterdescription","path":"/touchsocket/docs/adapterdescription","sidebar":"docs"},{"id":"appmessenger","path":"/touchsocket/docs/appmessenger","sidebar":"docs"},{"id":"bigfixedheadercustomdatahandlingadapter","path":"/touchsocket/docs/bigfixedheadercustomdatahandlingadapter","sidebar":"docs"},{"id":"bytepool","path":"/touchsocket/docs/bytepool","sidebar":"docs"},{"id":"calljsonrpc","path":"/touchsocket/docs/calljsonrpc","sidebar":"docs"},{"id":"callwebapi","path":"/touchsocket/docs/callwebapi","sidebar":"docs"},{"id":"callxmlrpc","path":"/touchsocket/docs/callxmlrpc","sidebar":"docs"},{"id":"consoleaction","path":"/touchsocket/docs/consoleaction","sidebar":"docs"},{"id":"cooperation","path":"/touchsocket/docs/cooperation","sidebar":"docs"},{"id":"createandcallrpc","path":"/touchsocket/docs/createandcallrpc","sidebar":"docs"},{"id":"createhttpclient","path":"/touchsocket/docs/createhttpclient","sidebar":"docs"},{"id":"createhttpservice","path":"/touchsocket/docs/createhttpservice","sidebar":"docs"},{"id":"createtcpclient","path":"/touchsocket/docs/createtcpclient","sidebar":"docs"},{"id":"createtcpservice","path":"/touchsocket/docs/createtcpservice","sidebar":"docs"},{"id":"createtouchrpcclient","path":"/touchsocket/docs/createtouchrpcclient","sidebar":"docs"},{"id":"createtouchrpcservice","path":"/touchsocket/docs/createtouchrpcservice","sidebar":"docs"},{"id":"createudpsession","path":"/touchsocket/docs/createudpsession","sidebar":"docs"},{"id":"createwebsocketclient","path":"/touchsocket/docs/createwebsocketclient","sidebar":"docs"},{"id":"createwebsocketservice","path":"/touchsocket/docs/createwebsocketservice","sidebar":"docs"},{"id":"custombetweenanddatahandlingadapter","path":"/touchsocket/docs/custombetweenanddatahandlingadapter","sidebar":"docs"},{"id":"customdatahandlingadapter","path":"/touchsocket/docs/customdatahandlingadapter","sidebar":"docs"},{"id":"customfixedheaderdatahandlingadapter","path":"/touchsocket/docs/customfixedheaderdatahandlingadapter","sidebar":"docs"},{"id":"customunfixedheaderdatahandlingadapter","path":"/touchsocket/docs/customunfixedheaderdatahandlingadapter","sidebar":"docs"},{"id":"dataadaptertester","path":"/touchsocket/docs/dataadaptertester","sidebar":"docs"},{"id":"dataforwarding","path":"/touchsocket/docs/dataforwarding","sidebar":"docs"},{"id":"datahandleadapter","path":"/touchsocket/docs/datahandleadapter","sidebar":"docs"},{"id":"datasecurity","path":"/touchsocket/docs/datasecurity","sidebar":"docs"},{"id":"dependencyproperty","path":"/touchsocket/docs/dependencyproperty","sidebar":"docs"},{"id":"description","path":"/touchsocket/docs/","sidebar":"docs"},{"id":"donate","path":"/touchsocket/docs/donate","sidebar":"docs"},{"id":"engineertoolbox","path":"/touchsocket/docs/engineertoolbox","sidebar":"docs"},{"id":"enterprise","path":"/touchsocket/docs/enterprise","sidebar":"docs"},{"id":"eventbus","path":"/touchsocket/docs/eventbus","sidebar":"docs"},{"id":"fastbinaryformatter","path":"/touchsocket/docs/fastbinaryformatter","sidebar":"docs"},{"id":"filepool","path":"/touchsocket/docs/filepool","sidebar":"docs"},{"id":"filesynchronization","path":"/touchsocket/docs/filesynchronization","sidebar":"docs"},{"id":"fixedheaderpackageadapter","path":"/touchsocket/docs/fixedheaderpackageadapter","sidebar":"docs"},{"id":"fixedsizepackageadapter","path":"/touchsocket/docs/fixedsizepackageadapter","sidebar":"docs"},{"id":"fpsgame","path":"/touchsocket/docs/fpsgame","sidebar":"docs"},{"id":"generateproxydescription","path":"/touchsocket/docs/generateproxydescription","sidebar":"docs"},{"id":"generateproxyfromserver","path":"/touchsocket/docs/generateproxyfromserver","sidebar":"docs"},{"id":"generateproxyfromsourcegenerator","path":"/touchsocket/docs/generateproxyfromsourcegenerator","sidebar":"docs"},{"id":"generateproxysourcegeneratordemo","path":"/touchsocket/docs/generateproxysourcegeneratordemo","sidebar":"docs"},{"id":"heartbeat","path":"/touchsocket/docs/heartbeat","sidebar":"docs"},{"id":"httpfiletransfer","path":"/touchsocket/docs/httpfiletransfer","sidebar":"docs"},{"id":"httpstaticpageplugin","path":"/touchsocket/docs/httpstaticpageplugin","sidebar":"docs"},{"id":"ilog","path":"/touchsocket/docs/ilog","sidebar":"docs"},{"id":"independentusedatahandlingadapter","path":"/touchsocket/docs/independentusedatahandlingadapter","sidebar":"docs"},{"id":"ioc","path":"/touchsocket/docs/ioc","sidebar":"docs"},{"id":"ipackage","path":"/touchsocket/docs/ipackage","sidebar":"docs"},{"id":"jsonrpcdescription","path":"/touchsocket/docs/jsonrpcdescription","sidebar":"docs"},{"id":"jsonrpcservice","path":"/touchsocket/docs/jsonrpcservice","sidebar":"docs"},{"id":"jsonserialize","path":"/touchsocket/docs/jsonserialize","sidebar":"docs"},{"id":"multithreadingfiletransfer","path":"/touchsocket/docs/multithreadingfiletransfer","sidebar":"docs"},{"id":"natservice","path":"/touchsocket/docs/natservice","sidebar":"docs"},{"id":"normaldatahandlingadapter","path":"/touchsocket/docs/normaldatahandlingadapter","sidebar":"docs"},{"id":"othercore","path":"/touchsocket/docs/othercore","sidebar":"docs"},{"id":"pipelinedatahandlingadapter","path":"/touchsocket/docs/pipelinedatahandlingadapter","sidebar":"docs"},{"id":"pluginsmanager","path":"/touchsocket/docs/pluginsmanager","sidebar":"docs"},{"id":"reconnection","path":"/touchsocket/docs/reconnection","sidebar":"docs"},{"id":"remotefilecontrol","path":"/touchsocket/docs/remotefilecontrol","sidebar":"docs"},{"id":"remotemonitoring","path":"/touchsocket/docs/remotemonitoring","sidebar":"docs"},{"id":"remotestreamaccess","path":"/touchsocket/docs/remotestreamaccess","sidebar":"docs"},{"id":"resetid","path":"/touchsocket/docs/resetid","sidebar":"docs"},{"id":"rpcactionfilter","path":"/touchsocket/docs/rpcactionfilter","sidebar":"docs"},{"id":"rpcallcontext","path":"/touchsocket/docs/rpcallcontext","sidebar":"docs"},{"id":"rpcoption","path":"/touchsocket/docs/rpcoption","sidebar":"docs"},{"id":"rpcstream","path":"/touchsocket/docs/rpcstream","sidebar":"docs"},{"id":"serializationselector","path":"/touchsocket/docs/serializationselector","sidebar":"docs"},{"id":"smallfiletransfer","path":"/touchsocket/docs/smallfiletransfer","sidebar":"docs"},{"id":"startguide","path":"/touchsocket/docs/startguide","sidebar":"docs"},{"id":"stategridtransmission","path":"/touchsocket/docs/stategridtransmission","sidebar":"docs"},{"id":"streamtransfer","path":"/touchsocket/docs/streamtransfer","sidebar":"docs"},{"id":"tcpcommandlineplugin","path":"/touchsocket/docs/tcpcommandlineplugin","sidebar":"docs"},{"id":"tcpintroduction","path":"/touchsocket/docs/tcpintroduction","sidebar":"docs"},{"id":"tcpother","path":"/touchsocket/docs/tcpother","sidebar":"docs"},{"id":"terminatorpackageadapter","path":"/touchsocket/docs/terminatorpackageadapter","sidebar":"docs"},{"id":"tlvdatahandlingadapter","path":"/touchsocket/docs/tlvdatahandlingadapter","sidebar":"docs"},{"id":"touchrpcbase","path":"/touchsocket/docs/touchrpcbase","sidebar":"docs"},{"id":"touchrpcdescription","path":"/touchsocket/docs/touchrpcdescription","sidebar":"docs"},{"id":"touchsocketbitconverter","path":"/touchsocket/docs/touchsocketbitconverter","sidebar":"docs"},{"id":"transferfile","path":"/touchsocket/docs/transferfile","sidebar":"docs"},{"id":"udpbroadcast","path":"/touchsocket/docs/udpbroadcast","sidebar":"docs"},{"id":"udpdatahandlingadapter","path":"/touchsocket/docs/udpdatahandlingadapter","sidebar":"docs"},{"id":"udptransmitbigdata","path":"/touchsocket/docs/udptransmitbigdata","sidebar":"docs"},{"id":"udpwaitingclient","path":"/touchsocket/docs/udpwaitingclient","sidebar":"docs"},{"id":"upgrade","path":"/touchsocket/docs/upgrade","sidebar":"docs"},{"id":"waitingclient","path":"/touchsocket/docs/waitingclient","sidebar":"docs"},{"id":"webapidescription","path":"/touchsocket/docs/webapidescription","sidebar":"docs"},{"id":"webapiservice","path":"/touchsocket/docs/webapiservice","sidebar":"docs"},{"id":"webdataforwarding","path":"/touchsocket/docs/webdataforwarding","sidebar":"docs"},{"id":"websocketdescription","path":"/touchsocket/docs/websocketdescription","sidebar":"docs"},{"id":"websocketheartbeat","path":"/touchsocket/docs/websocketheartbeat","sidebar":"docs"},{"id":"websocketverify","path":"/touchsocket/docs/websocketverify","sidebar":"docs"},{"id":"wpfuifiletransfer","path":"/touchsocket/docs/wpfuifiletransfer","sidebar":"docs"},{"id":"wscommandlineplugin","path":"/touchsocket/docs/wscommandlineplugin","sidebar":"docs"},{"id":"wsjsonrpc","path":"/touchsocket/docs/wsjsonrpc","sidebar":"docs"},{"id":"xmlrpcdescription","path":"/touchsocket/docs/xmlrpcdescription","sidebar":"docs"},{"id":"xmlrpcservice","path":"/touchsocket/docs/xmlrpcservice","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/touchsocket/docs/","label":"01\u3001\u8bf4\u660e\uff08\u4f7f\u7528\u524d\u5fc5\u8981\u9605\u8bfb\uff09"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(7529);const c=JSON.parse('{"docusaurusVersion":"2.3.1","siteVersion":"v1.2","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.3.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.3.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.3.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.3.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.3.1"},"docusaurus-plugin-image-zoom":{"type":"package","name":"docusaurus-plugin-image-zoom","version":"0.1.1"},"@easyops-cn/docusaurus-search-local":{"type":"package","name":"@easyops-cn/docusaurus-search-local","version":"0.33.5"}}}'),l={siteConfig:o.default,siteMetadata:c,globalData:a,i18n:i,codeTranslations:s},u=r.createContext(l);function d(e){let{children:t}=e;return r.createElement(u.Provider,{value:l},t)}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7294),o=n(412),a=n(5742),i=n(3929);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},r.createElement("h1",null,"This page crashed."),r.createElement("p",null,t.message),r.createElement("button",{type:"button",onClick:n},"Try again"))}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(u,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(a.Z,null,r.createElement("title",null,"Page Error")),r.createElement(i.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const l=e=>r.createElement(c,e);class u extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??l)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(405);function a(e){return r.createElement(o.ql,e)}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7462),o=n(7294),a=n(3727),i=n(8780),s=n(2263),c=n(3919),l=n(412);const u=o.createContext({collectLink:()=>{}});var d=n(4996);function p(e,t){var n;let{isNavLink:p,to:f,href:h,activeClassName:m,isActive:g,"data-noBrokenLinkCheck":b,autoAddBaseUrl:v=!0,...y}=e;const{siteConfig:{trailingSlash:k,baseUrl:E}}=(0,s.Z)(),{withBaseUrl:w}=(0,d.C)(),x=(0,o.useContext)(u),S=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(()=>S.current));const _=f||h;const T=(0,c.Z)(_),C=null==_?void 0:_.replace("pathname://","");let L=void 0!==C?(N=C,v&&(e=>e.startsWith("/"))(N)?w(N):N):void 0;var N;L&&T&&(L=(0,i.applyTrailingSlash)(L,{trailingSlash:k,baseUrl:E}));const I=(0,o.useRef)(!1),O=p?a.OL:a.rU,A=l.Z.canUseIntersectionObserver,R=(0,o.useRef)(),P=()=>{I.current||null==L||(window.docusaurus.preload(L),I.current=!0)};(0,o.useEffect)((()=>(!A&&T&&null!=L&&window.docusaurus.prefetch(L),()=>{A&&R.current&&R.current.disconnect()})),[R,L,A,T]);const D=(null==(n=L)?void 0:n.startsWith("#"))??!1,M=!L||!T||D;return M||b||x.collectLink(L),M?o.createElement("a",(0,r.Z)({ref:S,href:L},_&&!T&&{target:"_blank",rel:"noopener noreferrer"},y)):o.createElement(O,(0,r.Z)({},y,{onMouseEnter:P,onTouchStart:P,innerRef:e=>{S.current=e,A&&e&&T&&(R.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(R.current.unobserve(e),R.current.disconnect(),null!=L&&window.docusaurus.prefetch(L))}))})),R.current.observe(e))},to:L},p&&{isActive:g,activeClassName:m}))}const f=o.forwardRef(p)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>s});var r=n(7294);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=null==t?void 0:t[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var a=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return a[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return o(i({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:a}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const s=i({message:t,id:n});return r.createElement(r.Fragment,null,o(s,a))}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(7294),o=n(2263),a=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(8940);function a(){return(0,r.useContext)(o._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(8934);function a(){return(0,r.useContext)(o._)}},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach((n=>{let[o,a]=n;const i=r?`${r}.${o}`:o;var s;"object"==typeof(s=a)&&s&&Object.keys(s).length>0?e(a,i):t[i]=a}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>a});var r=n(7294);const o=r.createContext(null);function a(e){let{children:t,value:n}=e;const a=r.useContext(o),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...null==n?void 0:n.data};return{plugin:t.plugin,data:r}}({parent:a,value:n})),[a,n]);return r.createElement(o.Provider,{value:i},t)}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>m,gA:()=>p,_r:()=>u,Jo:()=>g,zh:()=>d,yW:()=>h,gB:()=>f});var r=n(6775),o=n(2263),a=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function c(e,t){const n=function(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=null==n?void 0:n.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const l={},u=()=>i("docusaurus-plugin-content-docs")??l,d=e=>function(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=i(e),o=null==r?void 0:r[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function f(e){return d(e).versions}function h(e){const t=d(e);return s(t)}function m(e){const t=d(e),{pathname:n}=(0,r.TH)();return c(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=s(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(4865),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),o=n(6809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(4806)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294);const o="iconExternalLink_nPIU";function a(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:o},r.createElement("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"}))}},3929:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Wt});var r=n(7294),o=n(6010),a=n(4763),i=n(1944),s=n(7462),c=n(6775),l=n(5999),u=n(5936);const d="docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,c.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const h=(0,l.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??h,{containerRef:n,onClick:o}=f();return r.createElement("div",{ref:n,role:"region","aria-label":h},r.createElement("a",(0,s.Z)({},e,{href:`#${d}`,onClick:o}),t))}var g=n(5281),b=n(9727);const v="skipToContent_fXgn";function y(){return r.createElement(m,{className:v})}var k=n(6668),E=n(9689);function w(e){let{width:t=21,height:n=21,color:o="currentColor",strokeWidth:a=1.2,className:i,...c}=e;return r.createElement("svg",(0,s.Z)({viewBox:"0 0 15 15",width:t,height:n},c),r.createElement("g",{stroke:o,strokeWidth:a},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const x="closeButton_CVFx";function S(e){return r.createElement("button",(0,s.Z)({type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.Z)("clean-btn close",x,e.className)}),r.createElement(w,{width:14,height:14,strokeWidth:3.1}))}const _="content_knG7";function T(e){const{announcementBar:t}=(0,k.L)(),{content:n}=t;return r.createElement("div",(0,s.Z)({},e,{className:(0,o.Z)(_,e.className),dangerouslySetInnerHTML:{__html:n}}))}const C="announcementBar_mb4j",L="announcementBarPlaceholder_vyr4",N="announcementBarClose_gvF7",I="announcementBarContent_xLdY";function O(){const{announcementBar:e}=(0,k.L)(),{isActive:t,close:n}=(0,E.nT)();if(!t)return null;const{backgroundColor:o,textColor:a,isCloseable:i}=e;return r.createElement("div",{className:C,style:{backgroundColor:o,color:a},role:"banner"},i&&r.createElement("div",{className:L}),r.createElement(T,{className:I}),i&&r.createElement(S,{onClick:n,className:N}))}var A=n(2961),R=n(2466);var P=n(902),D=n(3102);const M=r.createContext(null);function F(e){let{children:t}=e;const n=function(){const e=(0,A.e)(),t=(0,D.HY)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,P.D9)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return r.createElement(M.Provider,{value:n},t)}function z(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function B(){const e=(0,r.useContext)(M);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,D.HY)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:z(a)})),[o,a,t])}function U(e){let{header:t,primaryMenu:n,secondaryMenu:a}=e;const{shown:i}=B();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},a)))}var j=n(2949),$=n(2389);function H(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("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"}))}function Z(e){return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("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"}))}const V={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function Q(e){let{className:t,value:n,onChange:a}=e;const i=(0,$.Z)(),s=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===n?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,o.Z)(V.toggle,t)},r.createElement("button",{className:(0,o.Z)("clean-btn",V.toggleButton,!i&&V.toggleButtonDisabled),type:"button",onClick:()=>a("dark"===n?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(H,{className:(0,o.Z)(V.toggleIcon,V.lightToggleIcon)}),r.createElement(Z,{className:(0,o.Z)(V.toggleIcon,V.darkToggleIcon)})))}const W=r.memo(Q);function G(e){let{className:t}=e;const n=(0,k.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,j.I)();return n?null:r.createElement(W,{className:t,value:o,onChange:a})}var q=n(1327);function Y(){return r.createElement(q.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,A.e)();return r.createElement("button",{type:"button","aria-label":(0,l.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(w,{color:"var(--ifm-color-emphasis-600)"}))}function X(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(Y,null),r.createElement(G,{className:"margin-right--md"}),r.createElement(K,null))}var J=n(9960),ee=n(4996),te=n(3919);function ne(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var re=n(9471);function oe(e){let{activeBasePath:t,activeBaseRegex:n,to:o,href:a,label:i,html:c,isDropdownLink:l,prependBaseUrlToHref:u,...d}=e;const p=(0,ee.Z)(o),f=(0,ee.Z)(t),h=(0,ee.Z)(a,{forcePrependBaseUrl:!0}),m=i&&a&&!(0,te.Z)(a),g=c?{dangerouslySetInnerHTML:{__html:c}}:{children:r.createElement(r.Fragment,null,i,m&&r.createElement(re.Z,l&&{width:12,height:12}))};return a?r.createElement(J.Z,(0,s.Z)({href:u?h:a},d,g)):r.createElement(J.Z,(0,s.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?ne(n,t.pathname):t.pathname.startsWith(f)},d,g))}function ae(e){let{className:t,isDropdownItem:n=!1,...a}=e;const i=r.createElement(oe,(0,s.Z)({className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},a));return n?r.createElement("li",null,i):i}function ie(e){let{className:t,isDropdownItem:n,...a}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(oe,(0,s.Z)({className:(0,o.Z)("menu__link",t)},a)))}function se(e){let{mobile:t=!1,position:n,...o}=e;const a=t?ie:ae;return r.createElement(a,(0,s.Z)({},o,{activeClassName:o.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ce=n(6043),le=n(8596),ue=n(2263);function de(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!ne(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function pe(e){let{items:t,position:n,className:a,onClick:i,...c}=e;const l=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[l]),r.createElement("div",{ref:l,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u})},r.createElement(oe,(0,s.Z)({"aria-haspopup":"true","aria-expanded":u,role:"button",href:c.to?void 0:"#",className:(0,o.Z)("navbar__link",a)},c,{onClick:c.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))}}),c.children??c.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,n)=>r.createElement(dt,(0,s.Z)({isDropdownItem:!0,onKeyDown:e=>{if(n===t.length-1&&"Tab"===e.key){e.preventDefault(),d(!1);const t=l.current.nextElementSibling;if(t){(t instanceof HTMLAnchorElement?t:t.querySelector("a")).focus()}}},activeClassName:"dropdown__link--active"},e,{key:n}))))))}function fe(e){let{items:t,className:n,position:a,onClick:i,...l}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,ue.Z)(),{pathname:t}=(0,c.TH)();return t.replace(e,"/")}(),d=de(t,u),{collapsed:p,toggleCollapsed:f,setCollapsed:h}=(0,ce.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&h(!d)}),[u,d,h]),r.createElement("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(oe,(0,s.Z)({role:"button",className:(0,o.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},l,{onClick:e=>{e.preventDefault(),f()}}),l.children??l.label),r.createElement(ce.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(dt,(0,s.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function he(e){let{mobile:t=!1,...n}=e;const o=t?fe:pe;return r.createElement(o,n)}var me=n(4711);function ge(e){let{width:t=20,height:n=20,...o}=e;return r.createElement("svg",(0,s.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},o),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const be="iconLanguage_nlXk";var ve=n(1029),ye=n(412),ke=n(373),Ee=n(143),we=n(22),xe=n(8202),Se=n(3926),_e=n(1073),Te=n(2539),Ce=n(726);const Le="searchBar_RVTs",Ne="dropdownMenu_qbY6",Ie="searchBarLeft_MXDe",Oe="suggestion_fB_2",Ae="cursor_eG29",Re="hitTree_kk6K",Pe="hitIcon_a7Zy",De="hitPath_ieM4",Me="noResultsIcon_EBY5",Fe="hitFooter_E9YW",ze="hitWrapper_sAK8",Be="hitTitle_vyVt",Ue="hitAction_NqkB",je="noResults_l6Q3",$e="searchBarContainer_NW3z",He="searchBarLoadingRing_YnHq",Ze="searchClearButton_qk4g",Ve="searchIndexLoading_EJ1f",Qe="searchHintContainer_Pkmr",We="searchHint_iIMx",Ge="focused_OWtg",qe="input_FOTf",Ye="hint_URu1",Ke="suggestions_X8XU",Xe="dataset_QiCy",Je="empty_eITn";function et(e){let{document:t,type:n,page:r,metadata:o,tokens:a,isInterOfTree:i,isLastOfTree:s}=e;const c=0===n,l=1===n,u=[];i?u.push(''):s&&u.push('');const d=u.map((e=>`${e}`)),p=`${c?'':l?'':''}`,f=[`${(0,Ce.o)(t.t,(0,_e.m)(o,"t"),a)}`];if(!i&&!s&&ve.H6){const e=r?(r.b??[]).concat(r.t).concat(t.s&&t.s!==r.t?t.s:[]):t.b;f.push(`${(0,Se.e)(e??[])}`)}else c||f.push(`${(0,Te.C)(r.t||(t.u.startsWith("/docs/api-reference/")?"API Reference":""),a)}`);const h=``;return[...d,p,``,...f,"",h].join("")}function tt(){return`${(0,l.I)({id:"theme.SearchBar.noResultsText",message:"No results"})}`}var nt=n(311);async function rt(){const e=await Promise.all([n.e(8443),n.e(5525)]).then(n.t.bind(n,8443,23)),t=e.default;return t.noConflict?t.noConflict():e.noConflict&&e.noConflict(),t}const ot="_highlight";const at=function(e){var t;let{handleSearchBarToggle:n}=e;const{siteConfig:{baseUrl:a}}=(0,ue.Z)(),i=(0,Ee.gA)();let s=a;try{const{preferredVersion:e}=(0,ke.J)((null==i?void 0:i.pluginId)??ve.gQ);e&&!e.isLast&&(s=e.path+"/")}catch(M){if(ve.l9&&!(M instanceof P.i6))throw M}const u=(0,c.k6)(),d=(0,c.TH)(),p=(0,r.useRef)(null),f=(0,r.useRef)(new Map),h=(0,r.useRef)(!1),[m,g]=(0,r.useState)(!1),[b,v]=(0,r.useState)(!1),[y,k]=(0,r.useState)(""),E=(0,r.useRef)(null),w=(0,r.useRef)(""),[x,S]=(0,r.useState)("");(0,r.useEffect)((()=>{if(!Array.isArray(ve.Kc))return;let e="";if(d.pathname.startsWith(s)){const t=d.pathname.substring(s.length),n=ve.Kc.find((e=>t===e||t.startsWith(`${e}/`)));n&&(e=n)}w.current!==e&&(f.current.delete(e),w.current=e),S(e)}),[d.pathname,s]);const _=!!ve.hG&&Array.isArray(ve.Kc)&&""===x,T=(0,r.useCallback)((async()=>{var e;if(_||f.current.get(x))return;f.current.set(x,"loading"),null==(e=E.current)||e.autocomplete.destroy(),g(!0);const[{wrappedIndexes:t,zhDictionary:n},r]=await Promise.all([(0,we.w)(s,x),rt()]);if(E.current=r(p.current,{hint:!1,autoselect:!0,openOnFocus:!0,cssClasses:{root:(0,o.Z)(Le,{[Ie]:"left"===ve.pu}),noPrefix:!0,dropdownMenu:Ne,input:qe,hint:Ye,suggestions:Ke,suggestion:Oe,cursor:Ae,dataset:Xe,empty:Je}},[{source:(0,xe.v)(t,n,ve.qo),templates:{suggestion:et,empty:tt,footer:e=>{let{query:t,isEmpty:n}=e;if(n)return;const r=document.createElement("a"),o=new URLSearchParams;if(o.set("q",t),Array.isArray(ve.Kc)&&o.set("ctx",x),s!==a){if(!s.startsWith(a))throw new Error(`Version url '${s}' does not start with base url '${a}', this is a bug of \`@easyops-cn/docusaurus-search-local\`, please report it.`);o.set("version",s.substring(a.length))}const i=`${a}search?${o.toString()}`;r.href=i,r.textContent=(0,l.I)({id:"theme.SearchBar.seeAll",message:"See all results"}),r.addEventListener("click",(e=>{var t;e.ctrlKey||e.metaKey||(e.preventDefault(),null==(t=E.current)||t.autocomplete.close(),u.push(i))}));const c=document.createElement("div");return c.className=Fe,c.appendChild(r),c}}}]).on("autocomplete:selected",(function(e,t){var n;let{document:{u:r,h:o},tokens:a}=t;null==(n=p.current)||n.blur();let i=r;if(ve.vc&&a.length>0){const e=new URLSearchParams;for(const t of a)e.append(ot,t);i+=`?${e.toString()}`}o&&(i+=o),u.push(i)})).on("autocomplete:closed",(()=>{var e;null==(e=p.current)||e.blur()})),f.current.set(x,"done"),g(!1),h.current){const e=p.current;var i;if(e.value)null==(i=E.current)||i.autocomplete.open();e.focus()}}),[_,x,s,a,u]);(0,r.useEffect)((()=>{if(!ve.vc)return;const e=ye.Z.canUseDOM?new URLSearchParams(d.search).getAll(ot):[];setTimeout((()=>{var t;const n=document.querySelector("article");if(!n)return;const r=new ve.vc(n);r.unmark(),0!==e.length&&r.mark(e),k(e.join(" ")),null==(t=E.current)||t.autocomplete.setVal(e.join(" "))}))}),[d.search,d.pathname]);const[C,L]=(0,r.useState)(!1),N=(0,r.useCallback)((()=>{h.current=!0,T(),L(!0),null==n||n(!0)}),[n,T]),I=(0,r.useCallback)((()=>{L(!1),null==n||n(!1)}),[n]),O=(0,r.useCallback)((()=>{T()}),[T]),A=(0,r.useCallback)((e=>{k(e.target.value),e.target.value&&v(!0)}),[]),R=!!ye.Z.canUseDOM&&/mac/i.test((null==(t=navigator.userAgentData)?void 0:t.platform)??navigator.platform);(0,r.useEffect)((()=>{if(!ve.AY)return;const e=e=>{var t;(R?e.metaKey:e.ctrlKey)&&"KeyK"===e.code&&(e.preventDefault(),null==(t=p.current)||t.focus(),N())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[R,N]);const D=(0,r.useCallback)((()=>{var e;const t=new URLSearchParams(d.search);t.delete(ot);const n=t.toString(),r=d.pathname+(""!=n?`?${n}`:"")+d.hash;r!=d.pathname+d.search+d.hash&&u.push(r),k(""),null==(e=E.current)||e.autocomplete.setVal("")}),[d.pathname,d.search,d.hash,u]);return r.createElement("div",{className:(0,o.Z)("navbar__search",$e,{[Ve]:m&&b,[Ge]:C}),hidden:_},r.createElement("input",{placeholder:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),"aria-label":"Search",className:"navbar__search-input",onMouseEnter:O,onFocus:N,onBlur:I,onChange:A,ref:p,value:y}),r.createElement(nt.Z,{className:He}),ve.AY&&ve.t_&&(""!==y?r.createElement("button",{className:Ze,onClick:D},"\u2715"):r.createElement("div",{className:Qe},r.createElement("kbd",{className:We},R?"\u2318":"ctrl"),r.createElement("kbd",{className:We},"K"))))},it="searchBox_ZlJk";function st(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,o.Z)(n,it)},t)}var ct=n(2802);const lt=e=>e.docs.find((t=>t.id===e.mainDocId));const ut={default:se,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:o,...a}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,ue.Z)(),p=(0,me.l)(),{search:f,hash:h}=(0,c.TH)(),m=[...n,...u.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${h}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...o],g=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(he,(0,s.Z)({},a,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(ge,{className:be}),g),items:m}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(st,{className:n},r.createElement(at,null))},dropdown:he,html:function(e){let{value:t,className:n,mobile:a=!1,isDropdownItem:i=!1}=e;const s=i?"li":"div";return r.createElement(s,{className:(0,o.Z)({navbar__item:!a&&!i,"menu__list-item":a},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,Ee.Iw)(o),c=(0,ct.vY)(t,o);return null===c?null:r.createElement(se,(0,s.Z)({exact:!0},a,{isActive:()=>(null==i?void 0:i.path)===c.path||!(null==i||!i.sidebar)&&i.sidebar===c.sidebar,label:n??c.id,to:c.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,Ee.Iw)(o),c=(0,ct.oz)(t,o).link;if(!c)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(se,(0,s.Z)({exact:!0},a,{isActive:()=>(null==i?void 0:i.sidebar)===t,label:n??c.label,to:c.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:o,...a}=e;const i=(0,ct.lO)(o)[0],c=t??i.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(se,(0,s.Z)({},a,{label:c,to:l}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:o,dropdownItemsBefore:a,dropdownItemsAfter:i,...u}=e;const{search:d,hash:p}=(0,c.TH)(),f=(0,Ee.Iw)(n),h=(0,Ee.gB)(n),{savePreferredVersionName:m}=(0,ke.J)(n),g=[...a,...h.map((e=>{const t=f.alternateDocVersions[e.name]??lt(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>m(e.name)}})),...i],b=(0,ct.lO)(n)[0],v=t&&g.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:lt(b).path;return g.length<=1?r.createElement(se,(0,s.Z)({},u,{mobile:t,label:v,to:y,isActive:o?()=>!1:void 0})):r.createElement(he,(0,s.Z)({},u,{mobile:t,label:v,to:y,items:g,isActive:o?()=>!1:void 0}))}};function dt(e){let{type:t,...n}=e;const o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=ut[o];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(a,n)}function pt(){const e=(0,A.e)(),t=(0,k.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(dt,(0,s.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function ft(e){return r.createElement("button",(0,s.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(l.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function ht(){const e=0===(0,k.L)().navbar.items.length,t=B();return r.createElement(r.Fragment,null,!e&&r.createElement(ft,{onClick:()=>t.hide()}),t.content)}function mt(){const e=(0,A.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(U,{header:r.createElement(X,null),primaryMenu:r.createElement(pt,null),secondaryMenu:r.createElement(ht,null)}):null}const gt="navbarHideable_m1mJ",bt="navbarHidden_jGov";function vt(e){return r.createElement("div",(0,s.Z)({role:"presentation"},e,{className:(0,o.Z)("navbar-sidebar__backdrop",e.className)}))}function yt(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,k.L)(),i=(0,A.e)(),{navbarRef:s,isNavbarVisible:c}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=s?n(!1):i+l{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:s,"aria-label":(0,l.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.Z)("navbar","navbar--fixed-top",n&&[gt,!c&&bt],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown})},t,r.createElement(vt,{onClick:i.toggle}),r.createElement(mt,null))}function kt(e){let{width:t=30,height:n=30,className:o,...a}=e;return r.createElement("svg",(0,s.Z)({className:o,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},a),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function Et(){const{toggle:e,shown:t}=(0,A.e)();return r.createElement("button",{onClick:e,"aria-label":(0,l.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(kt,null))}const wt="colorModeToggle_DEke";function xt(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(dt,(0,s.Z)({},e,{key:t})))))}function St(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function _t(){const e=(0,A.e)(),t=(0,k.L)().navbar.items,[n,o]=function(e){function t(e){return"left"===(e.position??"right")}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return r.createElement(St,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Et,null),r.createElement(Y,null),r.createElement(xt,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(xt,{items:o}),r.createElement(G,{className:wt}),!a&&r.createElement(st,null,r.createElement(at,null)))})}function Tt(){return r.createElement(yt,null,r.createElement(_t,null))}function Ct(e){let{item:t}=e;const{to:n,href:o,label:a,prependBaseUrlToHref:i,...c}=t,l=(0,ee.Z)(n),u=(0,ee.Z)(o,{forcePrependBaseUrl:!0});return r.createElement(J.Z,(0,s.Z)({className:"footer__link-item"},o?{href:i?u:o}:{to:l},c),a,o&&!(0,te.Z)(o)&&r.createElement(re.Z,null))}function Lt(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(Ct,{item:t}))}function Nt(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(Lt,{key:t,item:e})))))}function It(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(Nt,{key:t,column:e}))))}function Ot(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function At(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(Ct,{item:t})}function Rt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(At,{item:e}),t.length!==n+1&&r.createElement(Ot,null))))))}function Pt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(It,{columns:t}):r.createElement(Rt,{links:t})}var Dt=n(941);const Mt="footerLogoLink_BH7S";function Ft(e){let{logo:t}=e;const{withBaseUrl:n}=(0,ee.C)(),a={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(Dt.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:a,width:t.width,height:t.height,style:t.style})}function zt(e){let{logo:t}=e;return t.href?r.createElement(J.Z,{href:t.href,className:Mt,target:t.target},r.createElement(Ft,{logo:t})):r.createElement(Ft,{logo:t})}function Bt(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Ut(e){let{style:t,links:n,logo:a,copyright:i}=e;return r.createElement("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(a||i)&&r.createElement("div",{className:"footer__bottom text--center"},a&&r.createElement("div",{className:"margin-bottom--sm"},a),i)))}function jt(){const{footer:e}=(0,k.L)();if(!e)return null;const{copyright:t,links:n,logo:o,style:a}=e;return r.createElement(Ut,{style:a,links:n&&n.length>0&&r.createElement(Pt,{links:n}),logo:o&&r.createElement(zt,{logo:o}),copyright:t&&r.createElement(Bt,{copyright:t})})}const $t=r.memo(jt),Ht=(0,P.Qc)([j.S,E.pl,R.OC,ke.L5,i.VC,function(e){let{children:t}=e;return r.createElement(D.n2,null,r.createElement(A.M,null,r.createElement(F,null,t)))}]);function Zt(e){let{children:t}=e;return r.createElement(Ht,null,t)}function Vt(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},r.createElement(l.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}const Qt="mainWrapper_z2l0";function Wt(e){const{children:t,noFooter:n,wrapperClassName:s,title:c,description:l}=e;return(0,b.t)(),r.createElement(Zt,null,r.createElement(i.d,{title:c,description:l}),r.createElement(y,null),r.createElement(O,null),r.createElement(Tt,null),r.createElement("div",{id:d,className:(0,o.Z)(g.k.wrapper.main,Qt,s)},r.createElement(a.Z,{fallback:e=>r.createElement(Vt,e)},t)),!n&&r.createElement($t,null))}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),o=n(7294),a=n(9960),i=n(4996),s=n(2263),c=n(6668),l=n(941);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},s=o.createElement(l.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?o.createElement("div",{className:r},s):s}function d(e){const{siteConfig:{title:t}}=(0,s.Z)(),{navbar:{title:n,logo:l}}=(0,c.L)(),{imageClassName:d,titleClassName:p,...f}=e,h=(0,i.Z)((null==l?void 0:l.href)||"/"),m=n?"":t,g=(null==l?void 0:l.alt)??m;return o.createElement(a.Z,(0,r.Z)({to:h},f,(null==l?void 0:l.target)&&{target:l.target}),l&&o.createElement(u,{logo:l,alt:g,imageClassName:d}),null!=n&&o.createElement("b",{className:p},n))}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(5742);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return r.createElement(o.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var r=n(7462),o=n(7294),a=n(6010),i=n(2389),s=n(2949);const c={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function l(e){const t=(0,i.Z)(),{colorMode:n}=(0,s.I)(),{sources:l,className:u,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,f.map((e=>o.createElement("img",(0,r.Z)({key:e,src:l[e],alt:d,className:(0,a.Z)(c.themedImage,c[`themedImage--${e}`],u)},p)))))}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,z:()=>h});var r=n(7462),o=n(7294),a=n(412);function i(e){let{initialState:t}=e;const[n,r]=(0,o.useState)(t??!1),a=(0,o.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:a}}const s={display:"none",overflow:"hidden",height:"0px"},c={display:"block",overflow:"visible",height:"auto"};function l(e,t){const n=t?s:c;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function u(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const a=(0,o.useRef)(!1);(0,o.useEffect)((()=>{const e=t.current;function o(){const t=e.scrollHeight,n=(null==r?void 0:r.duration)??function(e){const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${(null==r?void 0:r.easing)??"ease-in-out"}`,height:`${t}px`}}function i(){const t=o();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return l(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function d(e){if(!a.Z.canUseDOM)return e?s:c}function p(e){let{as:t="div",collapsed:n,children:r,animation:a,onCollapseTransitionEnd:i,className:s,disableSSRStyle:c}=e;const p=(0,o.useRef)(null);return u({collapsibleRef:p,collapsed:n,animation:a}),o.createElement(t,{ref:p,style:c?void 0:d(n),onTransitionEnd:e=>{"height"===e.propertyName&&(l(p.current,n),null==i||i(n))},className:s},r)}function f(e){let{collapsed:t,...n}=e;const[a,i]=(0,o.useState)(!t),[s,c]=(0,o.useState)(t);return(0,o.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,o.useLayoutEffect)((()=>{a&&c(t)}),[a,t]),a?o.createElement(p,(0,r.Z)({},n,{collapsed:s})):null}function h(e){let{lazy:t,...n}=e;const r=t?f:p;return o.createElement(r,n)}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>h,pl:()=>f});var r=n(7294),o=n(2389),a=n(12),i=n(902),s=n(6668);const c=(0,a.WA)("docusaurus.announcement.dismiss"),l=(0,a.WA)("docusaurus.announcement.id"),u=()=>"true"===c.get(),d=e=>c.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,o.Z)(),[n,a]=(0,r.useState)((()=>!!t&&u()));(0,r.useEffect)((()=>{a(u())}),[]);const i=(0,r.useCallback)((()=>{d(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=l.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;l.set(t),r&&d(!1),!r&&u()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function h(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>m});var r=n(7294),o=n(412),a=n(902),i=n(12),s=n(6668);const c=r.createContext(void 0),l="theme",u=(0,i.WA)(l),d="light",p="dark",f=e=>e===p?p:d;function h(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[a,i]=(0,r.useState)((e=>o.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e))(e));(0,r.useEffect)((()=>{t&&u.del()}),[t]);const c=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(i(t),o&&(e=>{u.set(f(e))})(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p:d:e),u.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==l)return;const t=u.get();null!==t&&c(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,c]);const h=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||h.current?h.current=window.matchMedia("print").matches:c(null)};return e.addListener(r),()=>e.removeListener(r)}),[c,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:c,get isDarkTheme(){return a===p},setLightTheme(){c(d)},setDarkTheme(){c(p)}})),[a,c])}function m(e){let{children:t}=e;const n=h();return r.createElement(c.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(c);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>y,L5:()=>b});var r=n(7294),o=n(143),a=n(9935),i=n(6668),s=n(2802),c=n(902),l=n(12);const u=e=>`docs-preferred-version-${e}`,d=(e,t,n)=>{(0,l.WA)(u(e),{persistence:t}).set(n)},p=(e,t)=>(0,l.WA)(u(e),{persistence:t}).get(),f=(e,t)=>{(0,l.WA)(u(e),{persistence:t}).del()};const h=r.createContext(null);function m(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,s]=(0,r.useState)((()=>(e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}]))))(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(f(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=m();return r.createElement(h.Provider,{value:n},t)}function b(e){let{children:t}=e;return s.cE?r.createElement(g,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(h);if(!e)throw new c.i6("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=a.m);const t=(0,o.zh)(e),[n,i]=v(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,b:()=>s});var r=n(7294),o=n(902);const a=Symbol("EmptyContext"),i=r.createContext(a);function s(e){let{children:t,name:n,items:o}=e;const a=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return r.createElement(i.Provider,{value:a},t)}function c(){const e=(0,r.useContext)(i);if(e===a)throw new o.i6("DocsSidebarProvider");return e}},2961:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(7294),o=n(3102),a=n(7524),i=n(6775),s=(n(1688),n(902));function c(e){!function(e){const t=(0,i.k6)(),n=(0,s.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var l=n(6668);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[i,s]=(0,r.useState)(!1);c((()=>{if(i)return s(!1),!1}));const u=(0,r.useCallback)((()=>{s((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&s(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:i})),[e,n,u,i])}function p(e){let{children:t}=e;const n=d();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>c,n2:()=>i});var r=n(7294),o=n(902);const a=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function s(){const e=(0,r.useContext)(a);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const i=(0,r.useContext)(a);if(!i)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,s]=i,c=(0,o.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:c})}),[s,t,c]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(7294);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>l});var r=n(7294),o=n(412);const a="desktop",i="mobile",s="ssr";function c(){return o.Z.canUseDOM?window.innerWidth>996?a:i:s}function l(){const[e,t]=(0,r.useState)((()=>c()));return(0,r.useEffect)((()=>{function e(){t(c())}return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},2802:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>p,_F:()=>h,cE:()=>d,hI:()=>k,lO:()=>b,vY:()=>y,oz:()=>v,s1:()=>g});var r=n(7294),o=n(6775),a=n(8790),i=n(143),s=n(373),c=n(1116);function l(e){return Array.from(new Set(e))}var u=n(8596);const d=!!i._r;function p(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=p(t);if(e)return e}}}const f=(e,t)=>void 0!==e&&(0,u.Mg)(e,t);function h(e,t){return"link"===e.type?f(e.href,t):"category"===e.type&&(f(e.href,t)||((e,t)=>e.some((e=>h(e,t))))(e.items,t))}function m(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,u.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,u.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function g(){var e;const t=(0,c.V)(),{pathname:n}=(0,o.TH)();return!1!==(null==(e=(0,i.gA)())?void 0:e.pluginData.breadcrumbs)&&t?m({sidebarItems:t.items,pathname:n}):null}function b(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>l([t,n,o].filter(Boolean))),[t,n,o])}function v(e,t){const n=b(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\n Available sidebar ids are:\n - ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function y(e,t){const n=b(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`DocNavbarItem: couldn't find any doc with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${l(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function k(e){let{route:t,versionMetadata:n}=e;const r=(0,o.TH)(),i=t.routes,s=i.find((e=>(0,o.LX)(r.pathname,e)));if(!s)return null;const c=s.sidebar,l=c?n.docsSidebars[c]:void 0;return{docElement:(0,a.H)(i),sidebarName:c,sidebarItems:l}}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>u,VC:()=>f});var r=n(7294),o=n(6010),a=n(5742),i=n(226);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var c=n(4996),l=n(2263);function u(e){let{title:t,description:n,keywords:o,image:i,children:s}=e;const u=function(e){const{siteConfig:t}=(0,l.Z)(),{title:n,titleDelimiter:r}=t;return null!=e&&e.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,c.C)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),s)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),s=(0,o.Z)(i,t);return r.createElement(d.Provider,{value:s},r.createElement(a.Z,null,r.createElement("html",{className:s})),n)}function f(e){let{children:t}=e;const n=s(),a=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,o.Z)(a,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>l,Ql:()=>c,i6:()=>s,zX:()=>a});var r=n(7294);const o=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function a(e){const t=(0,r.useRef)(e);return o((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return o((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){var n,r,o;super(),this.name="ReactContextError",this.message=`Hook ${(null==(n=this.stack)||null==(r=n.split("\n")[1])||null==(o=r.match(/at (?:\w+\.)?(?\w+)/))?void 0:o.groups.name)??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function l(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(7294),o=n(723),a=n(2263);function i(e,t){const n=e=>{var t;return null==(t=!e||e.endsWith("/")?e:`${e}/`)?void 0:t.toLowerCase()};return n(e)===n(t)}function s(){const{baseUrl:e}=(0,a.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>c,RF:()=>d});var r=n(7294),o=n(412),a=n(2389),i=n(902);const s=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(s.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const u=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=l(),o=(0,r.useRef)(u()),a=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function p(){const e=(0,r.useRef)(null),t=(0,a.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>null==e.current?void 0:e.current()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>o});n(2263);const r="default";function o(e,t){return`docs-${e}-${t}`}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>c});n(7294),n(1688);const r="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=a(null==t?void 0:t.persistence);return null===n?s:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>a});var r=n(2263),o=n(6775);function a(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:a}}=(0,r.Z)(),{pathname:i}=(0,o.TH)(),s=a===n?e:e.replace(`/${a}/`,"/"),c=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:o}=e;return`${o?t:""}${function(e){return e===n?`${s}`:`${s}${e}/`}(r)}${c}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),o=n(6775),a=n(902);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(2263);function o(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var o=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}})},311:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(7294),o=n(6010);const a="loadingRing_RJI3";function i(e){let{className:t}=e;return r.createElement("div",{className:(0,o.Z)(a,t)},r.createElement("div",null),r.createElement("div",null),r.createElement("div",null),r.createElement("div",null))}},22:(e,t,n)=>{"use strict";n.d(t,{w:()=>s});var r=n(1336),o=n.n(r),a=n(1029);const i=new Map;function s(e,t){const n=`${e}${t}`;let r=i.get(n);return r||(r=async function(e,t){{const n=`${e}${a.J.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),i=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:o().Index.load(r)}})),s=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:i,zhDictionary:Array.from(s)}}return{wrappedIndexes:[],zhDictionary:[]}}(e,t),i.set(n,r)),r}},8202:(e,t,n)=>{"use strict";n.d(t,{v:()=>c});var r=n(1336),o=n.n(r);var a=n(1029);function i(e){return s(e).concat(s(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function s(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:o().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?o().Query.wildcard.TRAILING:o().Query.wildcard.NONE})))})))}function c(e,t,n){return function(r,s){const c=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return o()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,a.dK);if(0===c.length)return void s([]);const l=function(e,t){const n=function(e,t){const n=[];return function e(r,o){if(0===r.length)return void n.push(o);const a=r[0];if(/\p{Unified_Ideograph}/u.test(a)){const n=function(e,t){const n=[];return function e(r,o){let a=0,i=!1;for(const s of t)if(r.substr(0,s.length)===s){const t={missed:o.missed,term:o.term.concat({value:s})};r.length>s.length?e(r.substr(s.length),t):n.push(t),i=!0}else for(let t=s.length-1;t>a;t-=1){const c=s.substr(0,t);if(r.substr(0,t)===c){a=t;const s={missed:o.missed,term:o.term.concat({value:c,trailing:!0})};r.length>t?e(r.substr(t),s):n.push(s),i=!0;break}}i||(r.length>0?e(r.substr(1),{missed:o.missed+1,term:o.term}):o.term.length>0&&n.push(o))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(a,t);for(const t of n){const n=o.concat(...t);e(r.slice(1),n)}}else{const t=o.concat({value:a});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:o().Query.presence.REQUIRED,wildcard:o().Query.wildcard.LEADING|o().Query.wildcard.TRAILING})))}];for(const o of n)o[o.length-1].maybeTyping=!0;const r=[];for(const i of a.dK)if("en"===i)a._k||r.unshift(o().stopWordFilter);else{const e=o()[i];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let s;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);s=[];const t=[];for(const r of n){const n=e(r);s.push(n),n.length0&&t.push(n)}n.push(...t)}else s=n.slice();const c=[];for(const o of s)if(o.length>2)for(let e=o.length-1;e>=0;e-=1)c.push(o.slice(0,e).concat(o.slice(e+1)));return i(n).concat(i(c))}(c,t),u=[];e:for(const{term:t,tokens:o}of l)for(const{documents:r,index:a,type:i}of e)if(u.push(...a.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!u.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-u.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:i,page:0!==i&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:o,score:t.score}}))),u.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,o=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===o&&(o=n.index),r===o?0===t.type?-1:0===n.type?1:t.index-n.index:r-o}))}(u),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n{"use strict";function r(e){return e.join(" \u203a ")}n.d(t,{e:()=>r})},1690:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}n.d(t,{X:()=>r})},1073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.d(t,{m:()=>r})},2539:(e,t,n)=>{"use strict";n.d(t,{C:()=>o});var r=n(1690);function o(e,t,n){const a=[];for(const i of t){const n=e.toLowerCase().indexOf(i);if(n>=0){n>0&&a.push(o(e.substr(0,n),t)),a.push(`${(0,r.X)(e.substr(n,i.length))}`);const s=n+i.length;s${(0,r.X)(e)}`:(0,r.X)(e):a.join("")}},726:(e,t,n)=>{"use strict";n.d(t,{o:()=>c});var r=n(1690),o=n(2539);const a=/\w+|\p{Unified_Ideograph}/u;function i(e){const t=[];let n=0,r=e;for(;r.length>0;){const o=r.match(a);if(!o){t.push(r);break}o.index>0&&t.push(r.substring(0,o.index)),t.push(o[0]),n+=o.index+o[0].length,r=e.substring(n)}return t}var s=n(1029);function c(e,t,n,a){void 0===a&&(a=s.Hk);const{chunkIndex:c,chunks:l}=function(e,t,n){const a=[];let s=0,c=0,l=-1;for(;sc){const t=i(e.substring(c,u)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)a.push(e)}-1===l&&(l=a.length),c=u+d,a.push({html:(0,o.C)(e.substring(u,c),n,!0),textLength:d})}}if(c({html:(0,r.X)(e),textLength:e.length})));for(const e of t)a.push(e)}return{chunkIndex:l,chunks:a}}(e,t,n),u=l.slice(0,c),d=l[c],p=[d.html],f=l.slice(c+1);let h=d.textLength,m=0,g=0,b=!1,v=!1;for(;h0){const e=u.pop();h+e.textLength<=a?(p.unshift(e.html),m+=e.textLength,h+=e.textLength):(b=!0,u.length=0)}else{if(!(f.length>0))break;{const e=f.shift();h+e.textLength<=a?(p.push(e.html),g+=e.textLength,h+=e.textLength):(v=!0,f.length=0)}}return(b||u.length>0)&&p.unshift("\u2026"),(v||f.length>0)&&p.push("\u2026"),p.join("")}},1029:(e,t,n)=>{"use strict";n.d(t,{vc:()=>i(),gQ:()=>g,H6:()=>p,hG:()=>y,l9:()=>b,dK:()=>s,_k:()=>c,pu:()=>m,AY:()=>f,t_:()=>h,Kc:()=>v,J:()=>l,Hk:()=>d,qo:()=>u});var r=n(1336),o=n.n(r),a=n(813),i=n.n(a);n(892)(o()),n(1728).w(o()),n(4182)(o());const s=["en","zh"],c=!1,l="search-index{dir}.json?_=472e04d4",u=8,d=50,p=!0,f=!0,h=!0,m="right",g=void 0,b=!0,v=null,y=!1},1728:(e,t,n)=>{"use strict";function r(e){const t=new RegExp("^[^"+e+"]+","u"),n=new RegExp("[^"+e+"]+$","u");return function(e){return e.update((function(e){return e.replace(t,"").replace(n,"")}))}}function o(e,t){e.trimmerSupport.generateTrimmer=r,e.zh=function(){this.pipeline.reset(),this.pipeline.add(e.zh.trimmer,e.zh.stopWordFilter),t&&(this.tokenizer=t)},t&&(e.zh.tokenizer=t),e.zh.wordCharacters="\\u3400-\\u4DBF\\u4E00-\\u9FFC\\uFA0E\\uFA0F\\uFA11\\uFA13\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29\\u{20000}-\\u{2A6DD}\\u{2A700}-\\u{2B734}\\u{2B740}-\\u{2B81D}\\u{2B820}-\\u{2CEA1}\\u{2CEB0}-\\u{2EBE0}\\u{30000}-\\u{3134A}",e.zh.trimmer=e.trimmerSupport.generateTrimmer(e.zh.wordCharacters),e.Pipeline.registerFunction(e.zh.trimmer,"trimmer-zh"),e.zh.stopWordFilter=e.generateStopWordFilter("\u7684 \u4e00 \u4e0d \u5728 \u4eba \u6709 \u662f \u4e3a \u4ee5 \u4e8e \u4e0a \u4ed6 \u800c \u540e \u4e4b \u6765 \u53ca \u4e86 \u56e0 \u4e0b \u53ef \u5230 \u7531 \u8fd9 \u4e0e \u4e5f \u6b64 \u4f46 \u5e76 \u4e2a \u5176 \u5df2 \u65e0 \u5c0f \u6211 \u4eec \u8d77 \u6700 \u518d \u4eca \u53bb \u597d \u53ea \u53c8 \u6216 \u5f88 \u4ea6 \u67d0 \u628a \u90a3 \u4f60 \u4e43 \u5b83 \u5427 \u88ab \u6bd4 \u522b \u8d81 \u5f53 \u4ece \u5230 \u5f97 \u6253 \u51e1 \u513f \u5c14 \u8be5 \u5404 \u7ed9 \u8ddf \u548c \u4f55 \u8fd8 \u5373 \u51e0 \u65e2 \u770b \u636e \u8ddd \u9760 \u5566 \u4e86 \u53e6 \u4e48 \u6bcf \u4eec \u561b \u62ff \u54ea \u90a3 \u60a8 \u51ed \u4e14 \u5374 \u8ba9 \u4ecd \u5565 \u5982 \u82e5 \u4f7f \u8c01 \u867d \u968f \u540c \u6240 \u5979 \u54c7 \u55e1 \u5f80 \u54ea \u4e9b \u5411 \u6cbf \u54df \u7528 \u4e8e \u54b1 \u5219 \u600e \u66fe \u81f3 \u81f4 \u7740 \u8bf8 \u81ea".split(" ")),e.Pipeline.registerFunction(e.zh.stopWordFilter,"stopWordFilter-zh")}n.d(t,{w:()=>o})},4811:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>m});var r=n(6809),o=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},r=window.Promise||function(e){function t(){}e(t,t)},a=function(e){var t=e.target;t!==A?-1!==T.indexOf(t)&&w({target:t}):E()},p=function(){if(!L&&O.original){var e=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(N-e)>I.scrollOffset&&setTimeout(E,150)}},f=function(e){var t=e.key||e.keyCode;"Escape"!==t&&"Esc"!==t&&27!==t||E()},h=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e;if(e.background&&(A.style.background=e.background),e.container&&e.container instanceof Object&&(t.container=o({},I.container,e.container)),e.template){var n=i(e.template)?e.template:document.querySelector(e.template);t.template=n}return I=o({},I,t),T.forEach((function(e){e.dispatchEvent(d("medium-zoom:update",{detail:{zoom:R}}))})),R},m=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e(o({},I,t))},g=function(){for(var e=arguments.length,t=Array(e),n=0;n0?t.reduce((function(e,t){return[].concat(e,c(t))}),[]):T;return r.forEach((function(e){e.classList.remove("medium-zoom-image"),e.dispatchEvent(d("medium-zoom:detach",{detail:{zoom:R}}))})),T=T.filter((function(e){return-1===r.indexOf(e)})),R},v=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return T.forEach((function(r){r.addEventListener("medium-zoom:"+e,t,n)})),C.push({type:"medium-zoom:"+e,listener:t,options:n}),R},y=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return T.forEach((function(r){r.removeEventListener("medium-zoom:"+e,t,n)})),C=C.filter((function(n){return!(n.type==="medium-zoom:"+e&&n.listener.toString()===t.toString())})),R},k=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target,n=function(){var e={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},t=void 0,n=void 0;if(I.container)if(I.container instanceof Object)t=(e=o({},e,I.container)).width-e.left-e.right-2*I.margin,n=e.height-e.top-e.bottom-2*I.margin;else{var r=(i(I.container)?I.container:document.querySelector(I.container)).getBoundingClientRect(),a=r.width,c=r.height,l=r.left,u=r.top;e=o({},e,{width:a,height:c,left:l,top:u})}t=t||e.width-2*I.margin,n=n||e.height-2*I.margin;var d=O.zoomedHd||O.original,p=s(d)?t:d.naturalWidth||t,f=s(d)?n:d.naturalHeight||n,h=d.getBoundingClientRect(),m=h.top,g=h.left,b=h.width,v=h.height,y=Math.min(Math.max(b,p),t)/b,k=Math.min(Math.max(v,f),n)/v,E=Math.min(y,k),w="scale("+E+") translate3d("+((t-b)/2-g+I.margin+e.left)/E+"px, "+((n-v)/2-m+I.margin+e.top)/E+"px, 0)";O.zoomed.style.transform=w,O.zoomedHd&&(O.zoomedHd.style.transform=w)};return new r((function(e){if(t&&-1===T.indexOf(t))e(R);else{if(O.zoomed)e(R);else{if(t)O.original=t;else{if(!(T.length>0))return void e(R);var r=T;O.original=r[0]}if(O.original.dispatchEvent(d("medium-zoom:open",{detail:{zoom:R}})),N=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,L=!0,O.zoomed=u(O.original),document.body.appendChild(A),I.template){var o=i(I.template)?I.template:document.querySelector(I.template);O.template=document.createElement("div"),O.template.appendChild(o.content.cloneNode(!0)),document.body.appendChild(O.template)}if(O.original.parentElement&&"PICTURE"===O.original.parentElement.tagName&&O.original.currentSrc&&(O.zoomed.src=O.original.currentSrc),document.body.appendChild(O.zoomed),window.requestAnimationFrame((function(){document.body.classList.add("medium-zoom--opened")})),O.original.classList.add("medium-zoom-image--hidden"),O.zoomed.classList.add("medium-zoom-image--opened"),O.zoomed.addEventListener("click",E),O.zoomed.addEventListener("transitionend",(function t(){L=!1,O.zoomed.removeEventListener("transitionend",t),O.original.dispatchEvent(d("medium-zoom:opened",{detail:{zoom:R}})),e(R)})),O.original.getAttribute("data-zoom-src")){O.zoomedHd=O.zoomed.cloneNode(),O.zoomedHd.removeAttribute("srcset"),O.zoomedHd.removeAttribute("sizes"),O.zoomedHd.removeAttribute("loading"),O.zoomedHd.src=O.zoomed.getAttribute("data-zoom-src"),O.zoomedHd.onerror=function(){clearInterval(a),console.warn("Unable to reach the zoom image target "+O.zoomedHd.src),O.zoomedHd=null,n()};var a=setInterval((function(){O.zoomedHd.complete&&(clearInterval(a),O.zoomedHd.classList.add("medium-zoom-image--opened"),O.zoomedHd.addEventListener("click",E),document.body.appendChild(O.zoomedHd),n())}),10)}else if(O.original.hasAttribute("srcset")){O.zoomedHd=O.zoomed.cloneNode(),O.zoomedHd.removeAttribute("sizes"),O.zoomedHd.removeAttribute("loading");var s=O.zoomedHd.addEventListener("load",(function(){O.zoomedHd.removeEventListener("load",s),O.zoomedHd.classList.add("medium-zoom-image--opened"),O.zoomedHd.addEventListener("click",E),document.body.appendChild(O.zoomedHd),n()}))}else n()}}}))},E=function(){return new r((function(e){if(!L&&O.original){L=!0,document.body.classList.remove("medium-zoom--opened"),O.zoomed.style.transform="",O.zoomedHd&&(O.zoomedHd.style.transform=""),O.template&&(O.template.style.transition="opacity 150ms",O.template.style.opacity=0),O.original.dispatchEvent(d("medium-zoom:close",{detail:{zoom:R}})),O.zoomed.addEventListener("transitionend",(function t(){O.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(O.zoomed),O.zoomedHd&&document.body.removeChild(O.zoomedHd),document.body.removeChild(A),O.zoomed.classList.remove("medium-zoom-image--opened"),O.template&&document.body.removeChild(O.template),L=!1,O.zoomed.removeEventListener("transitionend",t),O.original.dispatchEvent(d("medium-zoom:closed",{detail:{zoom:R}})),O.original=null,O.zoomed=null,O.zoomedHd=null,O.template=null,e(R)}))}else e(R)}))},w=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.target;return O.original?E():k({target:t})},x=function(){return I},S=function(){return T},_=function(){return O.original},T=[],C=[],L=!1,N=0,I=n,O={original:null,zoomed:null,zoomedHd:null,template:null};"[object Object]"===Object.prototype.toString.call(t)?I=t:(t||"string"==typeof t)&&g(t),I=o({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},I);var A=l(I.background);document.addEventListener("click",a),document.addEventListener("keyup",f),document.addEventListener("scroll",p),window.addEventListener("resize",E);var R={open:k,close:E,toggle:w,update:h,clone:m,attach:g,detach:b,on:v,off:y,getOptions:x,getImages:S,getZoomedImage:_};return R},{themeConfig:f}=r.default;function h(e){var t,n;return document.querySelector('html[data-theme="dark"]')?(null==(t=e.background)?void 0:t.dark)||"rgb(50, 50, 50)":(null==(n=e.background)?void 0:n.light)||"rgb(255, 255, 255)"}const m=function(){if("undefined"==typeof window)return null;let e;const{zoom:t}=f,{selector:n=".markdown img",config:r={}}=t||{};return r.background=h(t),new MutationObserver((function(n){e&&e.update({background:h(t)})})).observe(document.querySelector("html"),{attributes:!0,attributeFilter:["data-theme"]}),setTimeout((()=>{e&&e.detach(),e=p(n,r)}),1e3),{onRouteUpdate(){setTimeout((()=>{e&&e.detach(),e=p(n,r)}),1e3)}}}()},6010:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;to});const o=function(){for(var e,t,n=0,o="";n{"use strict";n.d(t,{lX:()=>k,q_:()=>T,ob:()=>f,PP:()=>L,Ep:()=>p});var r=n(7462);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!l)for(;d--;d)i.unshift("..");!l||""===i[0]||i[0]&&o(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};var s=n(2177);function c(e){return"/"===e.charAt(0)?e:"/"+e}function l(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function h(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,m(),k.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(k.entries[k.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=k.index+e;return t>=0&&t{"use strict";var r=n(9864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function c(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=f(n);o&&o!==h&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=c(t),m=c(n),g=0;g{"use strict";e.exports=function(e,t,n,r,o,a,i,s){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,s],u=0;(c=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},4182:function(e,t,n){var r,o;r=function(){return function(e){e.multiLanguage=function(){for(var t=Array.prototype.slice.call(arguments),n=t.join("-"),r="",o=[],a=[],i=0;i=n&&t[(o-=n)>>3]&1<<(7&o))return this.cursor++,!0}return!1},in_grouping_b:function(t,n,r){if(this.cursor>this.limit_backward){var o=e.charCodeAt(this.cursor-1);if(o<=r&&o>=n&&t[(o-=n)>>3]&1<<(7&o))return this.cursor--,!0}return!1},out_grouping:function(t,n,r){if(this.cursorr||o>3]&1<<(7&o)))return this.cursor++,!0}return!1},out_grouping_b:function(t,n,r){if(this.cursor>this.limit_backward){var o=e.charCodeAt(this.cursor-1);if(o>r||o>3]&1<<(7&o)))return this.cursor--,!0}return!1},eq_s:function(t,n){if(this.limit-this.cursor>1),d=0,p=s0||o==r||l)break;l=!0}}for(;;){if(s>=(f=t[r]).s_size){if(this.cursor=a+f.s_size,!f.method)return f.result;var m=f.method();if(this.cursor=a+f.s_size,m)return f.result}if((r=f.substring_i)<0)return 0}},find_among_b:function(t,n){for(var r=0,o=n,a=this.cursor,i=this.limit_backward,s=0,c=0,l=!1;;){for(var u=r+(o-r>>1),d=0,p=s=0;f--){if(a-p==i){d=-1;break}if(d=e.charCodeAt(a-1-p)-h.s[f])break;p++}if(d<0?(o=u,c=p):(r=u,s=p),o-r<=1){if(r>0||o==r||l)break;l=!0}}for(;;){var h;if(s>=(h=t[r]).s_size){if(this.cursor=a-h.s_size,!h.method)return h.result;var m=h.method();if(this.cursor=a-h.s_size,m)return h.result}if((r=h.substring_i)<0)return 0}},replace_s:function(t,n,r){var o=r.length-(n-t),a=e.substring(0,t),i=e.substring(n);return e=a+r+i,this.limit+=o,this.cursor>=n?this.cursor+=o:this.cursor>t&&(this.cursor=t),o},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>e.length)throw"faulty slice operation"},slice_from:function(e){this.slice_check(),this.replace_s(this.bra,this.ket,e)},slice_del:function(){this.slice_from("")},insert:function(e,t,n){var r=this.replace_s(e,t,n);e<=this.bra&&(this.bra+=r),e<=this.ket&&(this.ket+=r)},slice_to:function(){return this.slice_check(),e.substring(this.bra,this.ket)},eq_v_b:function(e){return this.eq_s_b(e.length,e)}}}},e.trimmerSupport={generateTrimmer:function(e){var t=new RegExp("^[^"+e+"]+"),n=new RegExp("[^"+e+"]+$");return function(e){return"function"==typeof e.update?e.update((function(e){return e.replace(t,"").replace(n,"")})):e.replace(t,"").replace(n,"")}}}}})?r.call(t,n,t,e):r)||(e.exports=o)},1336:(e,t,n)=>{var r,o;!function(){var a,i,s,c,l,u,d,p,f,h,m,g,b,v,y,k,E,w,x,S,_,T,C,L,N,I,O=function(e){var t=new O.Builder;return t.pipeline.add(O.trimmer,O.stopWordFilter,O.stemmer),t.searchPipeline.add(O.stemmer),e.call(t,t),t.build()};O.version="2.3.9",O.utils={},O.utils.warn=(a=this,function(e){a.console&&console.warn&&console.warn(e)}),O.utils.asString=function(e){return null==e?"":e.toString()},O.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var c=O.utils.clone(t)||{};c.position=[i,s],c.index=o.length,o.push(new O.Token(n.slice(i,a),c))}i=a+1}}return o},O.tokenizer.separator=/[\s\-]+/,O.Pipeline=function(){this._stack=[]},O.Pipeline.registeredFunctions=Object.create(null),O.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&O.utils.warn("Overwriting existing registered function: "+t),e.label=t,O.Pipeline.registeredFunctions[e.label]=e},O.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||O.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},O.Pipeline.load=function(e){var t=new O.Pipeline;return e.forEach((function(e){var n=O.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},O.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){O.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},O.Pipeline.prototype.after=function(e,t){O.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},O.Pipeline.prototype.before=function(e,t){O.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},O.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},O.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(ae&&(n=o),a!=e);)r=n-t,o=t+Math.floor(r/2),a=this.elements[2*o];return a==e||a>e?2*o:as?l+=2:i==s&&(t+=n[c+1]*r[l+1],c+=2,l+=2);return t},O.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},O.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var a,i=o.str.charAt(0);i in o.node.edges?a=o.node.edges[i]:(a=new O.TokenSet,o.node.edges[i]=a),1==o.str.length&&(a.final=!0),r.push({node:a,editsRemaining:o.editsRemaining,str:o.str.slice(1)})}if(0!=o.editsRemaining){if("*"in o.node.edges)var s=o.node.edges["*"];else{s=new O.TokenSet;o.node.edges["*"]=s}if(0==o.str.length&&(s.final=!0),r.push({node:s,editsRemaining:o.editsRemaining-1,str:o.str}),o.str.length>1&&r.push({node:o.node,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)}),1==o.str.length&&(o.node.final=!0),o.str.length>=1){if("*"in o.node.edges)var c=o.node.edges["*"];else{c=new O.TokenSet;o.node.edges["*"]=c}1==o.str.length&&(c.final=!0),r.push({node:c,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)})}if(o.str.length>1){var l,u=o.str.charAt(0),d=o.str.charAt(1);d in o.node.edges?l=o.node.edges[d]:(l=new O.TokenSet,o.node.edges[d]=l),1==o.str.length&&(l.final=!0),r.push({node:l,editsRemaining:o.editsRemaining-1,str:u+o.str.slice(2)})}}}return n},O.TokenSet.fromString=function(e){for(var t=new O.TokenSet,n=t,r=0,o=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},O.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},O.Index.prototype.search=function(e){return this.query((function(t){new O.QueryParser(e,t).parse()}))},O.Index.prototype.query=function(e){for(var t=new O.Query(this.fields),n=Object.create(null),r=Object.create(null),o=Object.create(null),a=Object.create(null),i=Object.create(null),s=0;s1?1:e},O.Builder.prototype.k1=function(e){this._k1=e},O.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var o=0;o=this.length)return O.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},O.QueryLexer.prototype.width=function(){return this.pos-this.start},O.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},O.QueryLexer.prototype.backup=function(){this.pos-=1},O.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=O.QueryLexer.EOS&&this.backup()},O.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(O.QueryLexer.TERM)),e.ignore(),e.more())return O.QueryLexer.lexText},O.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(O.QueryLexer.EDIT_DISTANCE),O.QueryLexer.lexText},O.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(O.QueryLexer.BOOST),O.QueryLexer.lexText},O.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(O.QueryLexer.TERM)},O.QueryLexer.termSeparator=O.tokenizer.separator,O.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==O.QueryLexer.EOS)return O.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return O.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(O.QueryLexer.TERM),O.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(O.QueryLexer.TERM),O.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(O.QueryLexer.PRESENCE),O.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(O.QueryLexer.PRESENCE),O.QueryLexer.lexText;if(t.match(O.QueryLexer.termSeparator))return O.QueryLexer.lexTerm}else e.escapeCharacter()}},O.QueryParser=function(e,t){this.lexer=new O.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},O.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=O.QueryParser.parseClause;e;)e=e(this);return this.query},O.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},O.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},O.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},O.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case O.QueryLexer.PRESENCE:return O.QueryParser.parsePresence;case O.QueryLexer.FIELD:return O.QueryParser.parseField;case O.QueryLexer.TERM:return O.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new O.QueryParseError(n,t.start,t.end)}},O.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=O.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=O.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new O.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new O.QueryParseError(n,t.start,t.end)}switch(r.type){case O.QueryLexer.FIELD:return O.QueryParser.parseField;case O.QueryLexer.TERM:return O.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new O.QueryParseError(n,r.start,r.end)}}},O.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new O.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var o=e.peekLexeme();if(null==o){r="expecting term, found nothing";throw new O.QueryParseError(r,t.start,t.end)}if(o.type===O.QueryLexer.TERM)return O.QueryParser.parseTerm;r="expecting term, found '"+o.type+"'";throw new O.QueryParseError(r,o.start,o.end)}},O.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case O.QueryLexer.TERM:return e.nextClause(),O.QueryParser.parseTerm;case O.QueryLexer.FIELD:return e.nextClause(),O.QueryParser.parseField;case O.QueryLexer.EDIT_DISTANCE:return O.QueryParser.parseEditDistance;case O.QueryLexer.BOOST:return O.QueryParser.parseBoost;case O.QueryLexer.PRESENCE:return e.nextClause(),O.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new O.QueryParseError(r,n.start,n.end)}else e.nextClause()}},O.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new O.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case O.QueryLexer.TERM:return e.nextClause(),O.QueryParser.parseTerm;case O.QueryLexer.FIELD:return e.nextClause(),O.QueryParser.parseField;case O.QueryLexer.EDIT_DISTANCE:return O.QueryParser.parseEditDistance;case O.QueryLexer.BOOST:return O.QueryParser.parseBoost;case O.QueryLexer.PRESENCE:return e.nextClause(),O.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new O.QueryParseError(r,o.start,o.end)}else e.nextClause()}},O.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new O.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case O.QueryLexer.TERM:return e.nextClause(),O.QueryParser.parseTerm;case O.QueryLexer.FIELD:return e.nextClause(),O.QueryParser.parseField;case O.QueryLexer.EDIT_DISTANCE:return O.QueryParser.parseEditDistance;case O.QueryLexer.BOOST:return O.QueryParser.parseBoost;case O.QueryLexer.PRESENCE:return e.nextClause(),O.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new O.QueryParseError(r,o.start,o.end)}else e.nextClause()}},void 0===(o="function"==typeof(r=function(){return O})?r.call(t,n,t,e):r)||(e.exports=o)}()},813:function(e){e.exports=function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1])||arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=o,this.iframesTimeout=a}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach((function(t){var n=e.filter((function(e){return e.contains(t)})).length>0;-1!==e.indexOf(t)||n||e.push(t)})),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var o=e.contentWindow;if(r=o.document,!o||!r)throw new Error("iframe inaccessible")}catch(a){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,o=!1,a=null,i=function i(){if(!o){o=!0,clearTimeout(a);try{r.isIframeBlank(e)||(e.removeEventListener("load",i),r.getIframeContents(e,t,n))}catch(s){n()}}};e.addEventListener("load",i),a=setTimeout(i,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(r){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,(function(){return!0}),(function(e){r++,n.waitForIframes(e.querySelector("html"),(function(){--r||t()}))}),(function(e){e||t()}))}},{key:"forEachIframe",value:function(t,n,r){var o=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=t.querySelectorAll("iframe"),s=i.length,c=0;i=Array.prototype.slice.call(i);var l=function(){--s<=0&&a(c)};s||l(),i.forEach((function(t){e.matches(t,o.exclude)?l():o.onIframeReady(t,(function(e){n(t)&&(c++,r(e)),l()}),l)}))}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:(null===t||e.nextNode())&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var o=!1,a=!1;return r.forEach((function(e,t){e.val===n&&(o=t,a=e.handled)})),this.compareNodeIframe(e,t,n)?(!1!==o||a?!1===o||a||(r[o].handled=!0):r.push({val:n,handled:!0}),!0):(!1===o&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var o=this;e.forEach((function(e){e.handled||o.getIframeContents(e.val,(function(e){o.createInstanceOnIframe(e).forEachNode(t,n,r)}))}))}},{key:"iterateThroughNodes",value:function(e,t,n,r,o){for(var a=this,i=this.createIterator(t,e,r),s=[],c=[],l=void 0,u=void 0,d=function(){var e=a.getIteratorNode(i);return u=e.prevNode,l=e.node};d();)this.iframes&&this.forEachIframe(t,(function(e){return a.checkIframeFilter(l,u,e,s)}),(function(t){a.createInstanceOnIframe(t).forEachNode(e,(function(e){return c.push(e)}),r)})),c.push(l);c.forEach((function(e){n(e)})),this.iframes&&this.handleOpenIframes(s,e,n,r),o()}},{key:"forEachNode",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=this.getContexts(),i=a.length;i||o(),a.forEach((function(a){var s=function(){r.iterateThroughNodes(e,a,t,n,(function(){--i<=0&&o()}))};r.iframes?r.waitForIframes(a,s):s()}))}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var o=!1;return n.every((function(t){return!r.call(e,t)||(o=!0,!1)})),o}return!1}}]),e}(),a=function(){function a(e){t(this,a),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(a,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var o in t)if(t.hasOwnProperty(o)){var a=t[o],i="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(a):this.escapeStr(a);""!==i&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(i)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynomyms(i)+"|"+this.processSynomyms(s)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,(function(e){return"\\"===e.charAt(0)?"?":"\x01"}))).replace(/(?:\\)*\*/g,(function(e){return"\\"===e.charAt(0)?"*":"\x02"}))}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,(function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"}))}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105","A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010d","C\xc7\u0106\u010c","d\u0111\u010f","D\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119","E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012b","I\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142","L\u0141","n\xf1\u0148\u0144","N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014d","O\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159","R\u0158","s\u0161\u015b\u0219\u015f","S\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163","T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016b","U\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xff","Y\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017a","Z\u017d\u017b\u0179"]:["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010dC\xc7\u0106\u010c","d\u0111\u010fD\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012bI\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142L\u0141","n\xf1\u0148\u0144N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014dO\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159R\u0158","s\u0161\u015b\u0219\u015fS\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016bU\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xffY\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017aZ\u017d\u017b\u0179"],r=[];return e.split("").forEach((function(o){n.every((function(n){if(-1!==n.indexOf(o)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0}))})),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xa1\xbf",r=this.opt.accuracy,o="string"==typeof r?r:r.value,a="string"==typeof r?[]:r.limiters,i="";switch(a.forEach((function(e){i+="|"+t.escapeStr(e)})),o){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr(n)))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach((function(e){t.opt.separateWordSearch?e.split(" ").forEach((function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)})):e.trim()&&-1===n.indexOf(e)&&n.push(e)})),{keywords:n.sort((function(e,t){return t.length-e.length})),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort((function(e,t){return e.start-t.start})).forEach((function(e){var o=t.callNoMatchOnInvalidRanges(e,r),a=o.start,i=o.end;o.valid&&(e.start=a,e.length=i-a,n.push(e),r=i)})),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,o=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?o=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:o}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,o=!0,a=n.length,i=t-a,s=parseInt(e.start,10)-i;return(r=(s=s>a?a:s)+parseInt(e.length,10))>a&&(r=a,this.log("End range automatically set to the max value of "+a)),s<0||r-s<0||s>a||r>a?(o=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(o=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:o}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,(function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})}),(function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),(function(){e({value:n,nodes:r})}))}},{key:"matchesExclude",value:function(e){return o.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",o=e.splitText(t),a=o.splitText(n-t),i=document.createElement(r);return i.setAttribute("data-markjs","true"),this.opt.className&&i.setAttribute("class",this.opt.className),i.textContent=o.textContent,o.parentNode.replaceChild(i,o),a}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,o){var a=this;e.nodes.every((function(i,s){var c=e.nodes[s+1];if(void 0===c||c.start>t){if(!r(i.node))return!1;var l=t-i.start,u=(n>i.end?i.end:n)-i.start,d=e.value.substr(0,i.start),p=e.value.substr(u+i.start);if(i.node=a.wrapRangeInTextNode(i.node,l,u),e.value=d+p,e.nodes.forEach((function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=u),e.nodes[n].end-=u)})),n-=u,o(i.node.previousSibling,i.start),!(n>i.end))return!1;t=i.end}return!0}))}},{key:"wrapMatches",value:function(e,t,n,r,o){var a=this,i=0===t?0:t+1;this.getTextNodes((function(t){t.nodes.forEach((function(t){t=t.node;for(var o=void 0;null!==(o=e.exec(t.textContent))&&""!==o[i];)if(n(o[i],t)){var s=o.index;if(0!==i)for(var c=1;c{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),l=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),c(l,i(e,u,d)),1===e?(c(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){c(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),s=e?"-100":a(n.status||0),l=document.querySelector(r.parent);return c(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),c=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function l(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;l(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);l(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,a){for(var i,s,c=o(e),l=1;l{var r=n(5826);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return s(a(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var h=e[i],m=n[2],g=n[3],b=n[4],v=n[5],y=n[6],k=n[7];s&&(r.push(s),s="");var E=null!=m&&null!=h&&h!==m,w="+"===y||"*"===y,x="?"===y||"*"===y,S=n[2]||u,_=b||v;r.push({name:g||a++,prefix:m||"",delimiter:S,optional:x,repeat:w,partial:E,asterisk:!!k,pattern:_?l(_):k?".*":"[^"+c(S)+"]+?"})}}return i{"use strict";n.d(t,{Z:()=>a});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);x+=w.value.length,w=w.next){var S=w.value;if(t.length>e.length)return;if(!(S instanceof o)){var _,T=1;if(v){if(!(_=a(E,x,e,b))||_.index>=e.length)break;var C=_.index,L=_.index+_[0].length,N=x;for(N+=w.value.length;C>=N;)N+=(w=w.next).value.length;if(x=N-=w.value.length,w.value instanceof o)continue;for(var I=w;I!==t.tail&&(Nd.reach&&(d.reach=P);var D=w.prev;if(A&&(D=c(t,D,A),x+=A.length),l(t,D,T),w=c(t,D,new o(p,g?r.tokenize(O,g):O,y,O)),R&&c(t,w,R),T>1){var M={cause:p+","+h,reach:P};i(e,t,n,w.prev,x,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function c(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function l(e,t,n){for(var r=t.next,o=0;o"+a.content+""},r}(),o=r;r.default=r,o.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},c=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var s=p(/^\{$/,/^\}$/);if(-1===s)continue;for(var c=n;c=0&&f(l,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function c(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function l(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,c(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function u(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,u={},d=c(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=s(i++,r)););return u[n]=o,n})).join(""),n,r),p=Object.keys(u);return i=0,function e(t){for(var n=0;n=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=p[i],a="string"==typeof r?r:r.content,s=a.indexOf(o);if(-1!==s){++i;var c=a.substring(0,s),d=l(u[o]),f=a.substring(s+o.length),h=[];if(c&&h.push(c),h.push(d),f){var m=[f];e(m),h.push.apply(h,m)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(h)),n+=h.length-1):r.content=h}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function a(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},s=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var c=i(o);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(c=i(t[r-1])+c,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",c,null,c)}o.content&&"string"!=typeof o.content&&s(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,s=i.length;-1!==n.code.indexOf(o=t(r,s));)++s;return i[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(s){for(var c=0;c=a.length);c++){var l=s[c];if("string"==typeof l||l.content&&"string"==typeof l.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof l?l:l.content,f=t(r,u),h=p.indexOf(f);if(h>-1){++o;var m=p.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(h+f.length),v=[];m&&v.push.apply(v,i([m])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof l?s.splice.apply(s,[c,1].concat(v)):l.content=v}}else l.content&&i(l.content)}return s}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const a=o},9016:()=>{!function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,(function(e,n){return"(?:"+t[+n]+")"}))}function n(e,n,r){return RegExp(t(e,n),r||"")}function r(e,t){for(var n=0;n>/g,(function(){return"(?:"+e+")"}));return e.replace(/<>/g,"[^\\s\\S]")}var o="bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",a="class enum interface record struct",i="add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",s="abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield";function c(e){return"\\b(?:"+e.trim().replace(/ /g,"|")+")\\b"}var l=c(a),u=RegExp(c(o+" "+a+" "+i+" "+s)),d=c(a+" "+i+" "+s),p=c(o+" "+a+" "+s),f=r(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source,2),h=r(/\((?:[^()]|<>)*\)/.source,2),m=/@?\b[A-Za-z_]\w*\b/.source,g=t(/<<0>>(?:\s*<<1>>)?/.source,[m,f]),b=t(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[d,g]),v=/\[\s*(?:,\s*)*\]/.source,y=t(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[b,v]),k=t(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[f,h,v]),E=t(/\(<<0>>+(?:,<<0>>+)+\)/.source,[k]),w=t(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[E,b,v]),x={keyword:u,punctuation:/[<>()?,.:[\]]/},S=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,_=/"(?:\\.|[^\\"\r\n])*"/.source,T=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;e.languages.csharp=e.languages.extend("clike",{string:[{pattern:n(/(^|[^$\\])<<0>>/.source,[T]),lookbehind:!0,greedy:!0},{pattern:n(/(^|[^@$\\])<<0>>/.source,[_]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[b]),lookbehind:!0,inside:x},{pattern:n(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[m,w]),lookbehind:!0,inside:x},{pattern:n(/(\busing\s+)<<0>>(?=\s*=)/.source,[m]),lookbehind:!0},{pattern:n(/(\b<<0>>\s+)<<1>>/.source,[l,g]),lookbehind:!0,inside:x},{pattern:n(/(\bcatch\s*\(\s*)<<0>>/.source,[b]),lookbehind:!0,inside:x},{pattern:n(/(\bwhere\s+)<<0>>/.source,[m]),lookbehind:!0},{pattern:n(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[y]),lookbehind:!0,inside:x},{pattern:n(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[w,p,m]),inside:x}],keyword:u,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),e.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:n(/([(,]\s*)<<0>>(?=\s*:)/.source,[m]),lookbehind:!0,alias:"punctuation"}}),e.languages.insertBefore("csharp","class-name",{namespace:{pattern:n(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[m]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[h]),lookbehind:!0,alias:"class-name",inside:x},"return-type":{pattern:n(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[w,b]),inside:x,alias:"class-name"},"constructor-invocation":{pattern:n(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[w]),lookbehind:!0,inside:x,alias:"class-name"},"generic-method":{pattern:n(/<<0>>\s*<<1>>(?=\s*\()/.source,[m,f]),inside:{function:n(/^<<0>>/.source,[m]),generic:{pattern:RegExp(f),alias:"class-name",inside:x}}},"type-list":{pattern:n(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[l,g,m,w,u.source,h,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:n(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[g,h]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:u,"class-name":{pattern:RegExp(w),greedy:!0,inside:x},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var C=_+"|"+S,L=t(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[C]),N=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[L]),2),I=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,O=t(/<<0>>(?:\s*\(<<1>>*\))?/.source,[b,N]);e.languages.insertBefore("csharp","class-name",{attribute:{pattern:n(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[I,O]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(/^<<0>>(?=\s*:)/.source,[I]),alias:"keyword"},"attribute-arguments":{pattern:n(/\(<<0>>*\)/.source,[N]),inside:e.languages.csharp},"class-name":{pattern:RegExp(b),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var A=/:[^}\r\n]+/.source,R=r(t(/[^"'/()]|<<0>>|\(<>*\)/.source,[L]),2),P=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[R,A]),D=r(t(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<>*\)/.source,[C]),2),M=t(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[D,A]);function F(t,r){return{interpolation:{pattern:n(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[r,A]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:n(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[P]),lookbehind:!0,greedy:!0,inside:F(P,R)},{pattern:n(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[M]),lookbehind:!0,greedy:!0,inside:F(M,D)}],char:{pattern:RegExp(S),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp}(Prism)},6862:()=>{!function(e){var t=e.languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:null},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*\]|[^\[\]])*\]|[^\[\]])*\]/i,boolean:/\$(?:false|true)\b/i,variable:/\$\w+\b/,function:[/\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(^|\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/};t.string[0].inside={function:{pattern:/(^|[^`])\$\((?:\$\([^\r\n()]*\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:t},boolean:t.boolean,variable:t.variable}}(Prism)},5266:()=>{Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}},4806:(e,t,n)=>{var r={"./prism-csharp":9016,"./prism-powershell":6862,"./prism-sql":5266};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=4806},2703:(e,t,n)=>{"use strict";var r=n(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),o=n(7418),a=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n