深入探索 Protobuf 与 gRPC:空消息交换、松散类型字段及安全保障
1. 空消息交换
在 gRPC 开发中,空消息交换是一个实用的技巧。之前,处理消息的计数仅在调用 SayHello RPC 且提供 name 属性时才会增加,并且没有办法在不增加计数的情况下获取该值。
现在,我们添加了专门的 RPC 来获取计数。由于只有一种计数类型,请求参数无需指定任何内容,因此使用空请求。同时,还添加了用于更新计数的 RPC。客户端可能会对所有消息进行计数,而不仅仅是那些定义了 name 参数的消息,它可以告知服务器应将计数更新为多少。由于我们只关心操作是否成功,服务器响应无需包含任何数据,所以响应为空。
以下是添加 SynchronizeMessageCount 实现的代码:
public override Task<Empty>
SynchronizeMessageCount(MessageCount request,
ServerCallContext context)
{
counter.UpdateCount(request.Count);
return Task.FromResult(new Empty());
}
接下来,我们要修改客户端,使其能够与新的 RPC 进行交互。具体操作步骤如下:
1. 在 GrpcClient 项目的 Pro
超级会员免费看
订阅专栏 解锁全文
74

被折叠的 条评论
为什么被折叠?



