我在 go 中創(chuàng)建一個 grpc 服務(wù),我按如下方式設(shè)置我的 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}在中標(biāo)記的行func setupGrpc()我得到一個編譯時錯誤:followerservice.UserServer 沒有實現(xiàn) reflection.GRPCServer(缺少 GetServiceInfo 方法)但我不知道如何實現(xiàn)它,我已經(jīng)谷歌搜索了幾個小時了。感覺可以protoc為我生成這個,但我有點困惑。
1 回答

幕布斯7119047
TA貢獻(xiàn)1794條經(jīng)驗 獲得超8個贊
您必須從構(gòu)造函數(shù)中獲得reflection.Register
,而不是您自己的實現(xiàn)。*grpc.Server
grpc.NewServer()
grpcServer := grpc.NewServer()
gen.RegisterUserServiceServer(grpcServer, &s)
reflection.Register(grpcServer)
- 1 回答
- 0 關(guān)注
- 228 瀏覽
添加回答
舉報
0/150
提交
取消