QQ讨论群:953553560
正文
系列章节
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
3.实现Client
新建一个netcore 3.0的Console项目,并引入Nuget包
编辑项目文件,修改如下节点
重新生成项目,Client端主要实现发送请求,请求是一个服务器端的文件路径。然后实现接收服务端的流,并保存到Client本地。
文件生成成功
2.客户端流式RPC
1.定义 protofile
2.实现服务端Service
重新生成项目,并实现如下
3.实现Client
新建一个netcore 3.0的Console项目,并引入Nuget包,安装nuget包与其他操作同上一个例子,实现代码如下
3.双向流式RPC
1.定义proto
2.服务端实现
重新生成项目,并实现如下
3.客户端代码
新建一个netcore 3.0的Console项目,并引入Nuget包,安装nuget包与其他操作同上一个例子,实现代码如下
至此,GRPC的几种数据交互分享完毕
原文地址:https://www.cnblogs.com/chenyishi/p/11143375.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com