GRPC与.net core

Posted 零度编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GRPC与.net core相关的知识,希望对你有一定的参考价值。

正文

系列章节

GRPC与.net core

GRPC截止时间与元数据

GRPC与netcore Identity

GRPC与netcore IdentityServer4

回到顶部

概述

GRPC的数据交互模式有:

1.单项RPC,最简单的数据交换方式,客户端发出单个请求,收到单个响应

2.服务端流式RPC,是在服务端收到客户端的请求之后,返回一个应答流,客户端收到流之后处理。

3.客户端流式RPC,与单项类似,但客户端发送的是流式RPC

4.双向流式RPC,调用由客户端调用方法来初始化,而服务端则接收到客户端的元数据,方法名和截止时间。服务端可以选择发送回它的初始元数据或等待客户端发送请求。下一步怎样发展取决于应用,因为客户端和服务端能在任意顺序上读写 - 这些流的操作是完全独立的。例如服务端可以一直等直到它接收到所有客户端的消息才写应答,或者服务端和客户端可以像"乒乓球"一样:服务端后得到一个请求就回送一个应答,接着客户端根据应答来发送另一个请求,以此类推。

单项RPC较简单不做示例了。

首先在vs2019中net core3.0中新建GRPC项目。然后定义响应的proto文件,根据proto文件生成响应的服务端与客户端代码。

回到顶部

1.服务端流式RPC


1.定义 protofile



2.实现服务端Service

重新生成项目,然后实现GetStreamContent,简单的读取文件内容,并将内容返回给Client

GRPC与.net core


                   

GRPC与.net core


 


3.实现Client

新建一个netcore 3.0的Console项目,并引入Nuget包

GRPC与.net core

Install-Package Grpc.Net.Client -Version 0.1.22-pre1
Install
-Package Google.Protobuf -Version 3.8.0
Install
-Package Grpc.Tools -Version 1.22.0

 

编辑项目文件,修改如下节点

<Protobuf Include="Protosgreet.proto" GrpcServices="Client" />

 

重新生成项目,Client端主要实现发送请求,请求是一个服务器端的文件路径。然后实现接收服务端的流,并保存到Client本地。

GRPC与.net core

           

GRPC与.net core


 

文件生成成功

GRPC与.net core

回到顶部

 2.客户端流式RPC


1.定义 protofile

GRPC与.net core


 


2.实现服务端Service

重新生成项目,并实现如下

GRPC与.net core


 


3.实现Client

新建一个netcore 3.0的Console项目,并引入Nuget包,安装nuget包与其他操作同上一个例子,实现代码如下

GRPC与.net core


 

回到顶部

 3.双向流式RPC


1.定义proto

GRPC与.net core

 


2.服务端实现

重新生成项目,并实现如下

GRPC与.net core


 


3.客户端代码

新建一个netcore 3.0的Console项目,并引入Nuget包,安装nuget包与其他操作同上一个例子,实现代码如下

GRPC与.net core

               


 

至此,GRPC的几种数据交互分享完毕





以上是关于GRPC与.net core的主要内容,如果未能解决你的问题,请参考以下文章

GRPC与.net core

gRPC .NET Core跨平台学习

.NET Core Love gRPC

ASP.NET Core gRPC 健康检查的探索与实现

ASP.NET Core gRPC 健康检查的探索与实现

.NET Core爱gRPC