gRPC in ASP.NET Core 3.x - gRPC 消息定义

栏目: IT技术 · 发布时间: 6年前

内容简介:之前写了几篇关于 Protoco Buffer 的文章。

之前写了几篇关于 Protoco Buffer 的文章。

gRPC in ASP.NET Core 3.x - gRPC 简介(1)

gRPC in ASP.NET Core 3.x - gRPC 简介(2)

当gRPC使用Protocol Buffer作为传输协议的时候,Protocol Buffer里所有的规则仍然都适用。但是在gRPC使用Protocol Buffer的时候,会添加一些额外的规则和语法,以便让gRPC能和它完美配合。

首先就是service关键字,它用来定义一个gPRC service:

gRPC in ASP.NET Core 3.x - gRPC 消息定义

在service里面,可以定义rpc调用,也就是client想让server做的事情。

gRPC in ASP.NET Core 3.x - gRPC 消息定义

  • 这里面就定义了一个rpc调用,名字叫GetByName。

  • 在调用里,我们还需要发送一个Request(请求消息),Request必须是消息类型,     不可以发送整型,bool等原始类型,更不可以是void。

  • 同样的,Response(响应消息)也是     消息类型,也不可以使用整型,bool,void等等。

如果请求或响应没有任何东西,那么就使用空的消息类型,但是必须带有消息。

一旦service定义好之后,我们就使用带有这个service的Protocol Buffer消息定义所在的文档,调用Protoc编译器来对它进行编译,编译后:

  • 首先会生成一个client的stub(桩),也就是为client生成的用于来server交互的代码。我们只需要调用这个生成的client即可,其它的一些诸如序列化、反序列化的细节都不用我们操心。

  • 然后也会生成server     interface,server这部分分为两块:

    • 一部分是消息接口的定义,这些接口我们需要去实现。例如C#,就会生成IEmployeeService之类的接口。

    • 另外一部分就是负责序列化、反序列化等工作的代码。

一个 service 定义的例子

service Employee {

rpc GetByName (Request) returns (Response)

rpc GetAll (Request) returns (stream Response)

rpc UploadFile (stream Request) returns (Response)

rpc Save(stream Request) returns (stream Response)

}

gRPC in ASP.NET Core 3.x - gRPC 消息定义


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算机是怎样跑起来的

计算机是怎样跑起来的

[日] 矢泽久雄 / 胡屹 / 人民邮电出版社 / 2015-5 / 39.00元

本书倡导在计算机迅速发展、技术不断革新的今天,回归到计算机的基础知识上。通过探究计算机的本质,提升工程师对计算机的兴趣,在面对复杂的最新技术时,能够迅速掌握其要点并灵活运用。 本书以图配文,以计算机的三大原则为开端、相继介绍了计算机的结构、手工汇编、程序流程、算法、数据结构、面向对象编程、数据库、TCP/IP 网络、数据加密、XML、计算机系统开发以及SE 的相关知识。 图文并茂,通俗......一起来看看 《计算机是怎样跑起来的》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具