电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

.NET6中使用GRPC的示例代碼

瀏覽:33日期:2022-06-14 14:16:57
目錄一、簡單使用二、實(shí)際應(yīng)用1.安裝包Grpc.AspNetCore 2.復(fù)制文件3.創(chuàng)建GreeterService.cs,直接復(fù)制就行了4.在Program.cs中注入5.在項(xiàng)目文件中,增加如下代碼6.運(yùn)行webapi和剛才的控制臺程序看效果

Supported languages | gRPC,官網(wǎng)。至于原理就不說了,可以百度原理之后,然后再結(jié)合代碼,事半功倍,就能很好理解GRPC了。

一、簡單使用

1.使用vs2022創(chuàng)建一個(gè)grpc程序,直接就默認(rèn)值,下一步

2.文件說明

文件1:就是對外面調(diào)用的自定義協(xié)議,也可以理解是接口,雙方必須規(guī)定一致性,把寫的方法暴露出去。

文件2:就是一般寫的方法,業(yè)務(wù)邏輯。

greet.proto文件

Greeter 定義的服務(wù)名字

這里結(jié)合下面寫的,SayHello方法名字,HelloRequest請求參數(shù),HelloReply返回的參數(shù)

3.此時(shí),默認(rèn)的程序就是一個(gè)服務(wù)端,那么我們就創(chuàng)建一個(gè)客戶端去訪問它

為了方便我們建立一個(gè)控制臺程序,實(shí)際情況,什么程序都是可以的

4.客戶端需要安裝3個(gè)包

Google.ProtobufGrpc.Net.ClientGrpc.Tools

5. 然后把服務(wù)端的這個(gè)文件夾整體拿過來放在客戶端下面

這個(gè)意思就是,他們有共同的協(xié)議,就互通了

6.同理,也把服務(wù)端的ItemGroup復(fù)制到客戶端

把Server改成Client

千萬別把上面的替換了,這句在最下面

<ItemGroup> <Protobuf Include='Protos\greet.proto' GrpcServices='Client' /> </ItemGroup>

7.然后在Program中調(diào)用

using Grpc.Net.Client;using GrpcService1;namespace ClientGRPC{ internal class Program {static void Main(string[] args){ string url = 'https://localhost:5001'; //https using (var channel = GrpcChannel.ForAddress(url)) {var client = new Greeter.GreeterClient(channel);var reply = client.SayHello(new HelloRequest(){ Name = '故里2130'});Console.WriteLine($'結(jié)果:message:{reply.Message}'); } Console.ReadKey(); //AppContext.SetSwitch('System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport', true); //http調(diào)用 //string url = 'http://localhost:5000'; //using (var channel = GrpcChannel.ForAddress(url)) //{ // var client = new Greeter.GreeterClient(channel); // var reply = client.SayHello(new HelloRequest() // { //Name = '故里2130' // }); // Console.WriteLine($'結(jié)果:message:{reply.Message}'); //} //Console.ReadKey();} }}

8.效果

這樣,我們就完成了,簡單的使用過程,和webapi的效果差不多。但是它的速度遠(yuǎn)遠(yuǎn)大于webapi。

補(bǔ)充:在IOC注入的方式調(diào)用GRPC,后面可以參考源碼

二、實(shí)際應(yīng)用

實(shí)際中使用,我們應(yīng)該結(jié)合webapi和grpc一起使用的

其實(shí)就是把剛才創(chuàng)建的GrpcService1全部遷移到webapi中就行了

1.安裝包Grpc.AspNetCore

2.復(fù)制文件

3.創(chuàng)建GreeterService.cs,直接復(fù)制就行了using Grpc.Core;using GrpcService1;namespace webapiGRPC.Controllers{ public class GreeterService : Greeter.GreeterBase {private readonly ILogger<GreeterService> _logger;public GreeterService(ILogger<GreeterService> logger){ _logger = logger;}public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context){ return Task.FromResult(new HelloReply {Message = 'Hello ' + request.Name });} }}4.在Program.cs中注入using GrpcService1;using webapiGRPC.Controllers;namespace webapiGRPC{ public class Program {public static void Main(string[] args){ var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.AddGrpc(); var app = builder.Build(); // Configure the HTTP request pipeline. //if (app.Environment.IsDevelopment()) //{ app.UseSwagger(); app.UseSwaggerUI(); //} app.UseHttpsRedirection(); app.UseAuthorization(); app.MapGrpcService<GreeterService>(); app.MapControllers(); app.Run();} }}5.在項(xiàng)目文件中,增加如下代碼

然后點(diǎn)擊生成

如果報(bào)錯(cuò)的話,一定要注意greet.proto中你寫的命名空間,命名空間是什么,那么就引用什么,否則繼承的時(shí)候,一直報(bào)錯(cuò)

<ItemGroup> <Protobuf Include='Protos\greet.proto' GrpcServices='Server' /> </ItemGroup>

所有文件

6.運(yùn)行webapi和剛才的控制臺程序看效果

可以看到,webapi和控制臺程序全部通了

此時(shí),我們就可以全部使用了,對自己的軟件調(diào)用GRPC,增加效率。對外部的軟件使用webapi,比較安全

源碼:

Net6GrpcService: Net6GrpcService

到此這篇關(guān)于.NET6中使用GRPC的示例代碼的文章就介紹到這了,更多相關(guān).NET6使用GRPC內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: ASP.NET
主站蜘蛛池模板: 蔬菜清洗机_环速洗菜机_异物去除清洗机_蔬菜清洗机_商用洗菜机 - 环速科技有限公司 | 齿轮减速机电机一体机_齿轮减速箱加电机一体化-德国BOSERL蜗轮蜗杆减速机电机生产厂家 | 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | 过滤器_自清洗过滤器_气体过滤器_苏州华凯过滤技术有限公司 | 激光内雕_led玻璃_发光玻璃_内雕玻璃_导光玻璃-石家庄明晨三维科技有限公司 激光内雕-内雕玻璃-发光玻璃 | 泰国试管婴儿_泰国第三代试管婴儿_泰国试管婴儿费用/多少钱_孕泰来 | 钢绞线万能材料试验机-全自动恒应力两用机-混凝土恒应力压力试验机-北京科达京威科技发展有限公司 | 新型游乐设备,360大摆锤游乐设备「诚信厂家」-山东方鑫游乐设备 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 定制/定做冲锋衣厂家/公司-订做/订制冲锋衣价格/费用-北京圣达信 | 合肥注册公司|合肥代办营业执照、2024注册公司流程 | 智慧钢琴-电钢琴-便携钢琴-数码钢琴-深圳市特伦斯乐器有限公司 | 成人纸尿裤,成人尿不湿,成人护理垫-山东康舜日用品有限公司 | 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 | 长春网站建设,五合一网站设计制作,免费优化推广-长春网站建设 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 软启动器-上海能曼电气有限公司| 高压油管,液压接头,液压附件-烟台市正诚液压附件| 安全阀_弹簧式安全阀_美标安全阀_工业冷冻安全阀厂家-中国·阿司米阀门有限公司 | 工业废水处理|污水处理厂|废水治理设备工程技术公司-苏州瑞美迪 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | 步进_伺服_行星减速机,微型直流电机,大功率直流电机-淄博冠意传动机械 | 奥因-光触媒除甲醛公司-除甲醛加盟公司十大品牌 | led冷热冲击试验箱_LED高低温冲击试验箱_老化试验箱-爱佩百科 | 电缆接头_防水接头_电缆防水接头 - 乐清市新豪电气有限公司 | SRRC认证_电磁兼容_EMC测试整改_FCC认证_SDOC认证-深圳市环测威检测技术有限公司 | 流变仪-热分析联用仪-热膨胀仪厂家-耐驰科学仪器商贸 | 陕西华春网络科技股份有限公司 | FAG轴承,苏州FAG轴承,德国FAG轴承-恩梯必传动设备(苏州)有限公司 | 北京律师咨询_知名专业北京律师事务所_免费法律咨询 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 | 消防泵-XBD单级卧式/立式消防泵-上海塑泉泵阀(集团)有限公司 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | Trimos测长机_测高仪_TESA_mahr,WYLER水平仪,PWB对刀仪-德瑞华测量技术(苏州)有限公司 | 岛津二手液相色谱仪,岛津10A液相,安捷伦二手液相,安捷伦1100液相-杭州森尼欧科学仪器有限公司 | 济南网站策划设计_自适应网站制作_H5企业网站搭建_济南外贸网站制作公司_锐尚 | 山东风淋室_201/304不锈钢风淋室净化设备厂家-盛之源风淋室厂家 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 重庆轻质隔墙板-重庆安吉升科技有限公司| 辽宁资质代办_辽宁建筑资质办理_辽宁建筑资质延期升级_辽宁中杭资质代办 |