protoful 中的 rpc定义公式

Posted projectdd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了protoful 中的 rpc定义公式相关的知识,希望对你有一定的参考价值。

通过vs2019的.net core3.1 的项目试错,我发现的相关proto rpc的规则是
rpc 方法名称(输入消息) returns(输出类型)
上面公式全部不能省略,并且 输入输出消息 全部只能是1可以计为方便记忆 可以表达 为下面这个样子:
rpc RemoteCallName(InputMessage<1>) returns(ReturnMessage<1>);

RemoteCallName 这是用户自己编辑的名称 InputMessage,ReturnMessage是 proto 文件中定义的message 的名称

下面这些全部是错的

 rpc RemoteCallName(InputMessage<0>) returns(ReturnMessage<1>);

 rpc RemoteCallName(InputMessage<0>);

 rpc RemoteCallName(InputMessage<1>);

 rpc RemoteCallName(InputMessage<n>);

 rpc RemoteCallName(InputMessage<0>) returns(ReturnMessage<0>);

 rpc RemoteCallName(InputMessage<n>) returns(ReturnMessage<1>);

这些签名在大部分语言中是常情,但proto里不能 

<n> 就是 InputMessage1,InputMessage2, .. 用逗号分开的message类型,这里也不允许多个

所以grpc的形式非常固定

 

以上是关于protoful 中的 rpc定义公式的主要内容,如果未能解决你的问题,请参考以下文章

gRPC在Go中的使用

protobuffers 实现中的回调-?

封装grpc

protobuf及grpc的client请求

gRPC 4种rpc定义方法与3种stub介绍

从 protobuf-net 中的自定义 RuntimeTypeModel 生成 .proto 文件