"use strict";(self.webpackChunktouchsocket=self.webpackChunktouchsocket||[]).push([[2645],{3905:(e,n,t)=>{t.d(n,{Zo:()=>l,kt:()=>g});var r=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function c(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=r.createContext({}),i=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):c(c({},n),e)),t},l=function(e){var n=i(e.components);return r.createElement(p.Provider,{value:n},e.children)},u={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=i(t),g=o,m=d["".concat(p,".").concat(g)]||d[g]||u[g]||a;return t?r.createElement(m,c(c({ref:n},l),{},{components:t})):r.createElement(m,c({ref:n},l))}));function g(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=d;var s={};for(var p in n)hasOwnProperty.call(n,p)&&(s[p]=n[p]);s.originalType=e,s.mdxType="string"==typeof e?e:o,c[1]=s;for(var i=2;i{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>c,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>i});var r=t(7462),o=(t(7294),t(3905));const a={id:"generateproxysourcegeneratordemo",title:"SG\u4ee3\u7406\u63a8\u8350\u5199\u6cd5"},c=void 0,s={unversionedId:"generateproxysourcegeneratordemo",id:"generateproxysourcegeneratordemo",title:"SG\u4ee3\u7406\u63a8\u8350\u5199\u6cd5",description:"\u4e00\u3001\u58f0\u660e\u63a5\u53e3",source:"@site/docs/generateproxysourcegeneratordemo.mdx",sourceDirName:".",slug:"/generateproxysourcegeneratordemo",permalink:"/touchsocket/docs/generateproxysourcegeneratordemo",draft:!1,editUrl:"https://gitee.com/rrqm_home/touchsocket/tree/master/handbook/docs/generateproxysourcegeneratordemo.mdx",tags:[],version:"current",lastUpdatedBy:"\u82e5\u6c5d\u68cb\u8317",lastUpdatedAt:1676382772,formattedLastUpdatedAt:"Feb 14, 2023",frontMatter:{id:"generateproxysourcegeneratordemo",title:"SG\u4ee3\u7406\u63a8\u8350\u5199\u6cd5"},sidebar:"docs",previous:{title:"\u4eceSourceGenerator\u83b7\u53d6\u4ee3\u7406",permalink:"/touchsocket/docs/generateproxyfromsourcegenerator"},next:{title:"\u4ea7\u54c1\u53ca\u67b6\u6784\u4ecb\u7ecd",permalink:"/touchsocket/docs/touchrpcdescription"}},p={},i=[{value:"\u4e00\u3001\u58f0\u660e\u63a5\u53e3",id:"\u4e00\u58f0\u660e\u63a5\u53e3",level:2},{value:"\u4e8c\u3001\u5b9e\u73b0\u63a5\u53e3",id:"\u4e8c\u5b9e\u73b0\u63a5\u53e3",level:2},{value:"\u4e09\u3001\u670d\u52a1\u6ce8\u518c\u3001\u542f\u52a8",id:"\u4e09\u670d\u52a1\u6ce8\u518c\u542f\u52a8",level:2},{value:"\u56db\u3001\u521b\u5efa\u5ba2\u6237\u7aef",id:"\u56db\u521b\u5efa\u5ba2\u6237\u7aef",level:2}],l={toc:i};function u(e){let{components:n,...t}=e;return(0,o.kt)("wrapper",(0,r.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"\u4e00\u58f0\u660e\u63a5\u53e3"},"\u4e00\u3001\u58f0\u660e\u63a5\u53e3"),(0,o.kt)("p",null,"\u5728TouchSocketPro\u4e2d\uff0c\u5173\u4e8eRpc\uff0c\u6211\u4eec\u6709\u66f4\u4e3a\u63a8\u8350\u7684\u5199\u6cd5\u3002\u8be6\u7ec6\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,o.kt)("p",null,"\uff081\uff09\u65b0\u5efa\u7c7b\u5e93\u9879\u76ee\uff0c\u547d\u540d\u4e3a",(0,o.kt)("inlineCode",{parentName:"p"},"RpcClassLibrary"),"\u3002\u7136\u540e\u5728\u8be5\u7a0b\u5e8f\u96c6\u4e2d\uff0c\u5b9a\u4e49\u670d\u52a1\u63a5\u53e3\uff0c\u548c\u63a5\u53e3\u53c2\u6570\u5b9e\u4f53\u7c7b\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},"/// \n/// \u5b9a\u4e49\u670d\u52a1\u63a5\u53e3\u3002\n/// \n[GeneratorRpcProxy]\npublic interface IUserServer:IRpcServer\n{\n [GeneratorRpcMethod]\n [TouchRpc]\n LoginResponse Login(LoginRequest request);\n}\n")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},"public class LoginRequest:RequestBase\n{\n public string Account { get; set; }\n public string Password { get; set; }\n}\n\npublic class LoginResponse : ResponseBase\n{\n}\n\n//\u4e0b\u9762\u4e24\u4e2a\u662f\u8bf7\u6c42\u548c\u54cd\u5e94\u7684\u57fa\u7c7b\uff0c\u53ef\u4ee5\u6839\u636e\u4e1a\u52a1\u589e\u52a0\u5176\u4ed6\u5b57\u6bb5\npublic class RequestBase\n{\n}\n\npublic class ResponseBase\n{\n public Result Result { get; set; }\n}\n")),(0,o.kt)("h2",{id:"\u4e8c\u5b9e\u73b0\u63a5\u53e3"},"\u4e8c\u3001\u5b9e\u73b0\u63a5\u53e3"),(0,o.kt)("p",null,"\u65b0\u5efa\u7c7b\u5e93\u9879\u76ee\uff0c\u547d\u540d",(0,o.kt)("inlineCode",{parentName:"p"},"RpcImplementationClassLibrary"),"\uff0c\u5f15\u7528",(0,o.kt)("inlineCode",{parentName:"p"},"RpcClassLibrary"),"\u9879\u76ee\uff0c\u7136\u540e\u7528\u4e8e\u5b9e\u73b0\u63a5\u53e3\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},"public class UserServer : IUserServer\n{\n public LoginResponse Login(LoginRequest request)\n {\n //\u8fd4\u56de\u5047\u903b\u8f91\n return new LoginResponse() { Result=Result.Success};\n }\n}\n")),(0,o.kt)("h2",{id:"\u4e09\u670d\u52a1\u6ce8\u518c\u542f\u52a8"},"\u4e09\u3001\u670d\u52a1\u6ce8\u518c\u3001\u542f\u52a8"),(0,o.kt)("p",null,"\u65b0\u5efa\u63a7\u5236\u53f0\u9879\u76ee\uff0c\u4f5c\u4e3a\u670d\u52a1\u5668\uff0c\u9700\u8981\u540c\u65f6\u5f15\u7528",(0,o.kt)("inlineCode",{parentName:"p"},"RpcImplementationClassLibrary"),"\u548c",(0,o.kt)("inlineCode",{parentName:"p"},"RpcClassLibrary"),"\u3002"),(0,o.kt)("p",null,"\u5982\u679c\u4f5c\u4e3a\u670d\u52a1\u5668\uff0c\u9700\u8981\u6309\u63a5\u53e3\u6ce8\u518c\u670d\u52a1"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp"},'var service = new TcpTouchRpcService();\nvar config = new TouchSocketConfig()//\u914d\u7f6e\n .SetListenIPHosts(new IPHost[] { new IPHost(7789) })\n .ConfigureContainer(a =>\n {\n a.AddConsoleLogger();\n a.AddFileLogger();\n })\n .ConfigureRpcStore(a => \n {\n a.RegisterServer();\n })\n .SetVerifyToken("TouchRpc");//\u8bbe\u5b9a\u8fde\u63a5\u53e3\u4ee4\uff0c\u4f5c\u7528\u7c7b\u4f3c\u8d26\u53f7\u5bc6\u7801\n\nservice.Setup(config)\n .Start();\n\nservice.Logger.Info($"{service.GetType().Name}\u5df2\u542f\u52a8");\n')),(0,o.kt)("h2",{id:"\u56db\u521b\u5efa\u5ba2\u6237\u7aef"},"\u56db\u3001\u521b\u5efa\u5ba2\u6237\u7aef"),(0,o.kt)("p",null,"\u4f5c\u4e3a\u5ba2\u6237\u7aef\u4ec5\u5f15\u7528",(0,o.kt)("inlineCode",{parentName:"p"},"RpcClassLibrary"),"\u5373\u53ef\u3002\u76f4\u63a5\u8c03\u7528\u5373\u53ef\u3002"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-csharp",metastring:"{8}","{8}":!0},'TcpTouchRpcClient client = new TcpTouchRpcClient();\nclient.Setup(new TouchSocketConfig()\n .SetRemoteIPHost("127.0.0.1:7789")\n .SetVerifyToken("TouchRpc"));\nclient.Connect();\n\n//Loging\u5373\u4e3a\u5728RpcClassLibrary\u4e2d\u81ea\u52a8\u751f\u6210\u7684\u9879\u76ee\nvar response = client.Login(new RpcClassLibrary.Models.LoginRequest() { Account= "Account",Password= "Account" });\nConsole.WriteLine(response.Result);\n')),(0,o.kt)("p",null,(0,o.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%8E%A8%E8%8D%90%E7%94%A8%E6%B3%95"},"\u63a8\u8350\u5199\u6cd5\u793a\u4f8b")))}u.isMDXComponent=!0}}]);