首页 > 解决方案 > 如何响应多个 gRPC 客户端?

问题描述

我正在构建一个可以有多个 gRPC 服务器并且肯定会有多个 gRPC 客户端的应用程序,我想知道,如何在服务器端识别这是我正在与之交谈的客户端,并且只向该客户端发送数据。我正在使用双向流 RPC,现在数据被广播到每个客户端,我不希望这样。go gRPC 中的哪些功能使其成为可能,或者我如何实现它?

标签: godistributed-computinggrpcgrpc-go

解决方案


有两种方法可以阅读这个问题。一种方法是将其阅读为之前回答的身份验证问题。第二种方式是我如何阅读它,作为连接/会话问题。

当客户端连接时,grpc 服务器将调用一个函数来在它自己的 goroutine 中实现调用,并且该函数将只与发起该调用的客户端对话。因此,您注册为 grpc 服务器的结构将在许多连接之间共享,但每个连接将在其自己的 goroutine 中运行,并且只会与启动它的客户端对话。这也意味着您必须确保 grpc 服务器实现是线程安全的。

您提到数据正在广播给每个客户?grpc 中没有广播,你确定这是怎么回事?


推荐阅读