我在 go 中创建一个 grpc 服务,我按如下方式设置我的 grpc
func 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为我生成这个,但我有点困惑。
幕布斯7119047
相关分类