当前位置: 首页 > news >正文

微信网站建设泉州网站提升排名

微信网站建设,泉州网站提升排名,东莞做网站软件,小程序开发公司Supported languages | gRPC,官网。至于原理就不说了,可以百度原理之后,然后再结合代码,事半功倍,就能很好理解GRPC了。 目录 一、简单使用 二、实际应用 一、简单使用 1.使用vs2022创建一个grpc程序,…

Supported languages | gRPC,官网。至于原理就不说了,可以百度原理之后,然后再结合代码,事半功倍,就能很好理解GRPC了。

目录

一、简单使用

二、实际应用 


一、简单使用

1.使用vs2022创建一个grpc程序,直接就默认值,下一步

2.文件说明

文件1:就是对外面调用的自定义协议,也可以理解是接口,双方必须规定一致性,把写的方法暴露出去。

文件2:就是一般写的方法,业务逻辑。

greet.proto文件

Greeter 定义的服务名字

这里结合下面写的,SayHello方法名字,HelloRequest请求参数,HelloReply返回的参数

3.此时,默认的程序就是一个服务端,那么我们就创建一个客户端去访问它

为了方便我们建立一个控制台程序,实际情况,什么程序都是可以的

4.客户端需要安装3个包

Google.Protobuf

Grpc.Net.Client

Grpc.Tools

5. 然后把服务端的这个文件夹整体拿过来放在客户端下面

这个意思就是,他们有共同的协议,就互通了

6.同理,也把服务端的ItemGroup复制到客户端

把Server改成Client

千万别把上面的替换了,这句在最下面

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

7.然后在Program中调用

using Grpc.Net.Client;
using GrpcService1;namespace ClientGRPC
{internal class Program{static void Main(string[] args){string url = "https://localhost:5001";   //httpsusing (var channel = GrpcChannel.ForAddress(url)){var client = new Greeter.GreeterClient(channel);var reply = client.SayHello(new HelloRequest(){Name = "故里2130"});Console.WriteLine($"结果:message:{reply.Message}");}Console.ReadKey();//AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);  //http调用//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($"结果:message:{reply.Message}");//}//Console.ReadKey();}}
}

8.效果

这样,我们就完成了,简单的使用过程,和webapi的效果差不多。但是它的速度远远大于webapi。

补充:在IOC注入的方式调用GRPC,后面可以参考源码

二、实际应用

实际中使用,我们应该结合webapi和grpc一起使用的

其实就是把刚才创建的GrpcService1全部迁移到webapi中就行了

1.安装包Grpc.AspNetCore 

2.复制文件

3.创建GreeterService.cs,直接复制就行了

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/swashbucklebuilder.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.在项目文件中,增加如下代码

然后点击生成

如果报错的话,一定要注意greet.proto中你写的命名空间,命名空间是什么,那么就引用什么,否则继承的时候,一直报错

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

所有文件

6.运行webapi和刚才的控制台程序看效果

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

此时,我们就可以全部使用了,对自己的软件调用GRPC,增加效率。对外部的软件使用webapi,比较安全

源码:

Net6GrpcService: Net6GrpcService

http://www.yayakq.cn/news/224235/

相关文章:

  • 图片瀑布流网站源码企业建设官方网站作用及意义
  • 网站建设年终总结怎么写鼓楼网站开发
  • 赣州深科网站建设兰州城市建设学校网上报名网站
  • 怎么更换网站模板移动平台开发技术
  • 本地做网站阿里云免费空间
  • 做网站网页的软件是绿色的图标什么门户网站营销怎么做
  • 做网站的简称购买域名网站
  • 东莞英文网站建设网页建设
  • 选做旅游网站的课题分析做网站p图工具
  • 太原建设厅网站建设网站时间推进表
  • 学包装设计网站网站编辑是个长期做的工作吗
  • 网站淘客怎么做微信小程序什么时候上线的
  • 照片网站源码长春百度网站优化
  • 网站为什么显示正在建设中杰奇怎么做网站地图
  • 做暧暧小视频有声音的网站小吃店网站建设
  • 企业网站管理系统教程模板式网站
  • 做网站推广的上海公司注册核名官网
  • 定制型网站建设推广企业营销策划有限公司
  • WordPress授权站资源网百度竞价点击软件
  • 外贸免费网站建设铜仁建设局网站首页
  • 做有后台的网站做的页面好看的网站
  • wordpress播放百度云seo手机优化软件哪个好用
  • 移动网站屏蔽wordpress添加字体
  • 大多数网站开发现状曹县做网站建设
  • 设计师应该看的网站oppo软件商店官网下载
  • 怎么建企业自己的网站吗网站制作公司哪家正规
  • 广东平台网站建设手机app微信网站建设
  • 安宁网站建设熊掌号网站meta优化
  • 个人博客网站制作论文网站开发成都
  • 找人做网站 网站定制开发多元网络兰州网站建设