gRPC在C++中的简单使用流程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gRPC在C++中的简单使用流程相关的知识,希望对你有一定的参考价值。

参考技术A 参考: https://blog.csdn.net/fengbingchun/article/details/100626030

            https://www.cnblogs.com/silvermagic/p/9087879.html

1.gRPC默认使用protocal buffers

2.第一步是在.proto中定义service:service serviceName  rpc function()

        有四种类型的方法:

        1)简单的rpc,就像普通的函数调用一样

        2)服务端流式rpc:在响应类型前加stream

        3)客户端流式rpc:在请求类型前加stream

        4)双向流失rpc:在请求和响应前加stream

3.从 .proto 的服务定义中生成 gRPC 客户端和服务器端的接口:make xx.grpc.pb.cc xx.pb.cc

4.创建服务器:

        1)实现service定义的生成的服务接口:做服务的实际的“工作”。

        2)运行一个 gRPC 服务器,监听来自客户端的请求并返回服务的响应。

5.创建客户端:

        1)创建一个存根

        2)调用服务的方法

C#中使用gRPC

C#中使用gRPC

我的这几篇文章都是使用gRPC的example,不是直接编译example,而是新建一个项目,从添加依赖,编译example代码,执行example。这样做可以为我们创建自己的项目提供借鉴。如果对gRPC构建应用很熟悉,可以无视本系列文章。

目录

一、概述

二、编译gRPC

三、C#中使用gRPC

四、C++中使用gRPC

由于有NuGet,使得C#在配置项目时非常简单。

1. 在NuGet中添加ProtocolBuffer和gRPC引用

protocol buffer 3.0版本,在NuGet插件界面选择Include Prerelease,查找google protocol buffer。
如果不选择include rerelease,查找到的protocol buffer是2.4的,无法编译通过gRPC的example。

2. 定义proto

设计proto协议文件,包括服务协议和数据。gRPC必须使用protocol buffer3.0版本,所以syntax设置为proto3
Greeter是服务名称
HelloRequest是请求数据
HelloReply是回复数据

syntax = "proto3";

option java_multiple_files = true;
option java_package = "io.grpc.examples.helloworld";
option java_outer_classname = "HelloWorldProto";
option objc_class_prefix = "HLW";

package helloworld;

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user\'s name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

3. 生成proto访问类

定义proto文件后,通过protocol buffer3.0提供的protoc.exe工具生成访问类。这里使用gRPC定义的protoc的C#插件grpc_csharp_plugin.exe,而不是使用protoGen.exe。
将以下几个文件放在同一个文件夹中:

grpc_csharp_plugin.exe
helloworld.proto
protoc.exe

创建一个bat文件,编写如下命令行:

protoc.exe -I=. --csharp_out=. --grpc_out=. --plugin=protoc-gen-grpc=grpc_csharp_plugin.exe helloworld.proto

执行bat文件,得到proto的访问类:

helloworld.cs
helloworldGrpc.cs

4. 创建C#项目

将两个访问类文件添加到C#项目中,将gRPC的C# example拷贝到Program.cs中,编译通过。

以上是关于gRPC在C++中的简单使用流程的主要内容,如果未能解决你的问题,请参考以下文章

C#中使用gRPC

gRPC 初探与简单使用

gRPC的简单使用

Web 客户端与 gRPC 服务器通信

grpc-go源码剖析七十五之多路复用简单介绍以及测试用例说明?

grpc实践-学会grpc就是这么简单