zoukankan      html  css  js  c++  java
  • 初识google多语言通信框架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中,编译通过。

  • 相关阅读:
    POJ 2175 Evacuation Plan 费用流 负圈定理
    POJ 2983 Is the Information Reliable? 差分约束
    codeforces 420B Online Meeting
    POJ 3181 Dollar Dayz DP
    POJ Ant Counting DP
    POJ 1742 Coins DP 01背包
    中国儒学史
    产品思维30讲
    Java多线程编程核心技术
    编写高质量代码:改善Java程序的151个建议
  • 原文地址:https://www.cnblogs.com/polinzhuo/p/5326801.html
Copyright © 2011-2022 走看看