golang中grpc问题

在学grpc使用的时候,用的官方的例子,为啥我生成的pb文件没有RegisterGreeterServer,NewGreeterClient等方法呢?
图片描述

生成方法:

protoc grpc-test/helloworld/helloworld.proto  --go_out=./

proto文件:


syntax = "proto3";

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

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;
}

我看了官方例子生成的代码是有这个方法的

func RegisterGreeterServer(s *grpc.Server, srv GreeterServer) {
    s.RegisterService(&_Greeter_serviceDesc, srv)
}

//.....

func NewGreeterClient(cc *grpc.ClientConn) GreeterClient {
    return &greeterClient{cc}
}

为啥我通过protoc创建的没有这两个方法呢?

阅读 6k
2 个回答

生成命令得是 protoc grpc-test/helloworld/helloworld.proto --go_out=plugins=grpc:.
这里要指定插件支持grpc,否则不会生成Service的接口.

新手上路,请多包涵

我也遇到这个问题了。 最新版本 叫 pb.RegisterCreateServer

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题