grpc.pb.go新版本,的外部接口调用实现问题及解决方式

本文介绍了在使用protoc-gen-go1.27.1版本时遇到的gRPC接口调用问题。当尝试实现GreeterServer接口时,由于mustEmbedUnimplementedGreeterServer私有方法未对外暴露,导致服务端无法正确实现接口。解决方法是将该私有方法改为公共方法,确保服务端结构体能够正确实现所有接口方法。
摘要由CSDN通过智能技术生成

grpc.pb.go新版本,的外部接口调用实现问题及解决方式


使用protoc-gen-go1.27.1版本或相近版本

  • 问题我们使用proto创建好文件之后,使用命令行生成对应的两个go文件,我们可以先看看相应的生成的代码。
//这是我们的proto文件
syntax = "proto3";
option go_package = ".;proto";

service Greeter {
  rpc SayHello(HelloRequest) returns (HelloReply);
}

message HelloRequest{
  string name = 1;
}

message  HelloReply{
  string message = 1;
}
//这是我们go语言生成的部分grpc.pb.go的代码
type GreeterClient interface {
   
	SayHello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloReply, error)
}

type greeterClient struct {
   
	cc grpc.ClientConnInterface
}

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

func (c *greeterClient) SayHello(ctx context.Context, in *HelloRequest, opts ...grpc.CallOption) (*HelloReply, error) {
   
	out := new(HelloReply)
	err := c.cc.Invoke
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值