i是GRPC的第一个学者。我认为这是一个丑陋的问题。
使用GRPC-GO创建一个简单的聊天应用程序。想要实现是这样的。
@clienta,clientb,clientc,连接到servera,并具有双向流连接。例如,如果要通知客户端,c clientd已连接到servera,则有哪种实现方法?
如何从服务器到客户端广播?
grpc:如何在服务器端区分双流式客户端?
我已经阅读了这些帖子,但是我想知道最佳实践。
例如,在创建客户端列表并在此通知时,该如何是代码?
我写下来,因为它是自我解决的。
https://github.com/rodaine/grpc-chat
这个项目非常有帮助。
type server struct {
ClientStreams map [string] chan chat.StreamResponse
}
以这种方式,一张存储客户端流的地图,此处地图,但可以使用slice或sync.map。
通过将信息从客户端连接到流中时的结构,我们能够支持广播和管理连接数量。