php用grpc调用golang使用详解

一、安装工具

1.1 protoc

是Google Protocol Buffers的编译器,它可以将.proto文件编译成各种编程语言的代码。

1.2 protoc-gen-doc插件

protoc-gen-docprotoc的文档生成器插件,它可以从.proto文件中的注释生成HTML、JSON、DocBook和Markdown文档,php语言对应的插件是grpc_php_plugin。

二、创建*.proto文件

syntax = "proto3";
/**
 * protoc --php_out=Grpc/compile --grpc_out=Grpc/compile --plugin=protoc-gen-grpc=/usr/bin/grpc_php_plugin Grpc/proto/grpcDemo.proto
 * protoc --go_out=./proto --go-grpc_out=./proto ./proto/grpc_demo.proto
 */
//protobuf 文件中定义命名空间或模块,避免命名冲突
package grpcDemo;
//go代码包生成的路径
option go_package = "grpc/grpcDemo";
//php生成的客户端代码包路径,此选项仅在php端时使用
option php_namespace = "Protobuf\\Grpc\\GrpcDemo";

service GrpcDemo {
  //获取信息
  rpc GetInfo(GetInfoReq) returns (GetInfoRes) {};
}

message GetInfoReq {
  string name = 1;
  int32 age = 2;
}

message GetInfoRes {
  int32 code = 1;
  string msg = 2;
  GetInfoReq data = 3;
}

三、执行命令 

3.1 php端

protoc --php_out=Grpc/compile --grpc_out=Grpc/compile --plugin=protoc-gen-grpc=/usr/bin/grpc_php_plugin Grpc/proto/grpcDemo.proto

注意:grpc_out表示grpc客户端生成目录,需与--plugin一起使用;php_out表示请求及响应数据格式生成目录

3.2 go端

protoc --go_out=./proto --go-grpc_out=./proto ./proto/grpc_demo.proto

注意:go-grpc_out表示grpc服务端生成目录,因已指定插件为go,所以可不与--plugin一起使用;go_out表示请求及响应数据格式生成目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值