如何在 gRPC 中从服务器向客户端广播?

Som*_*ium 5 go publish-subscribe redis http2 grpc

我现在正在 gRPC 中创建一个小型聊天应用程序,我遇到了一个问题,如果用户想作为客户端连接到 gRPC 服务器,我想向所有其他连接的人广播该事件已发生客户。

我正在考虑使用某种观察者,但我很困惑服务器如何知道谁连接了以及我如何将事件广播给所有客户端,而不仅仅是一两个客户端。

我知道使用流是答案的一部分,但是因为每个客户端都在使用服务器创建自己的流,所以我不确定它如何订阅其他服务器-客户端流。

小智 3

是的,除了保留包含所有连接流的全局数据结构并循环它们,告诉每个流刚刚发生的事件之外,我没有看到任何其他方法。