为了账号安全,请及时绑定邮箱和手机立即绑定

grpc服务没有实现reflection.GRPCServer

grpc服务没有实现reflection.GRPCServer

Go
富国沪深 2023-03-07 13:31:55
我在 go 中创建一个 grpc 服务,我按如下方式设置我的 grpcfunc setupGrpc() {    lis, err := net.Listen("tcp", ":9000")    if err != nil {        log.Fatalf("failed to listen: %v", err)    }    s := followerservice.UserServer{}    grpcServer := grpc.NewServer()    gen.RegisterUserServiceServer(grpcServer, &s)    // for ease of cli dev    reflection.Register(s) // this doesn't work!    if err := grpcServer.Serve(lis); err != nil {        log.Fatalf("failed to serve: %s", err)    }}我的UserServer长相是这样的type UserServer struct {    gen.UnimplementedUserServiceServer}func (s *UserServer) Create(ctx context.Context, in *gen.CreateUserRequest)(*gen.CreateUserResponse, error) {    log.Printf("Receive message body from client: %s", in.Email)    return &gen.CreateUserResponse{Id: "new id!"}, nil}在中标记的行func setupGrpc()我得到一个编译时错误:followerservice.UserServer 没有实现 reflection.GRPCServer(缺少 GetServiceInfo 方法)但我不知道如何实现它,我已经谷歌搜索了几个小时了。感觉可以protoc为我生成这个,但我有点困惑。
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

您必须从构造函数中获得reflection.Register,而不是您自己的实现。*grpc.Servergrpc.NewServer()


grpcServer := grpc.NewServer()

    gen.RegisterUserServiceServer(grpcServer, &s)


    reflection.Register(grpcServer)


查看完整回答
反对 回复 2023-03-07
  • 1 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信