【发布时间】:2020-06-23 18:42:44
【问题描述】:
使用 protoc,在我的例子中,在 golang 中,生成的服务器文件没有绑定到我创建的 TLS 证书和密钥。事实上,我不得不使用这种方法来实例化 grpc 服务器:
creds, _ := credentials.NewServerTLSFromFile("server.crt", "server.key")
s := grpc.NewServer(grpc.Creds(creds))
s.Serve(listener)
因为这段代码不是生成的,所以我需要使用上面的来注册我的服务描述符和处理程序:
s.RegisterService(&_My_serviceDesc, &handler.MailServer{})
原始生成的_My_serviceDesc 变量在生成的包中,因此无法从我的主包中访问,因此我必须在启动上面服务器的 mythemain 包中定义它。此外,这个相同的变量引用了一个用下划线 _My_Handler 定义的处理程序,我还必须在主包中重新定义它。
我查看了protoc 文档和帮助,否则似乎没有办法做到这一点。我想知道为什么不能将它与我需要的证书相关联。这看起来很奇怪......
【问题讨论】:
标签: grpc-go