syntax = "proto3";
service Hpgrpcservice {
rpc QuotationSettleData(stream QuotationReqData) returns (stream SettleResData) {}
}
然后我将其编译为
protoc --proto_path=./hpgrpc --go_out=./hpgrpc ./hpgrpc/hp.proto
hp.pb.go中的期望具有服务器和客户端代码,但没有。但是如果使用
protoc --proto_path=./hpgrpc ./hpgrpc/hp.proto --go_out=plugins=grpc:hpgrpc
它将具有服务器和客户端代码。这两种方式有什么不同?
答案 0 :(得分:0)
如果原始文件指定了RPC服务,则可以指示protoc-gen-go生成与gRPC(http://www.grpc.io/)兼容的代码。为此,请将plugins参数传递给protoc-gen-go;通常的方法是将其插入到protoc的--go_out参数中:
protoc --go_out=plugins=grpc:. *.proto
在第二个代码中,由于您提到了plugins = grpc,因此pb.go文件也具有grpc支持。
有关更多详细信息,您可以阅读以下内容:https://github.com/golang/protobuf