[zeromicro/go-zero]go-zero 的rpc 支持长连接么?

2024-03-05 940 views
1

我是做游戏的,考虑做一些微服务,但是为了性能极致,我希望使用长连接,一部分的消息使用rpc Req、Ack 一来一回的,一部分使用异步发送,就是 Rpt,但是没有回应,还有广播 消息,对所有客户端一起广播消息。 我知道 go-zero 的zrpc 使用的是grpc ,应该支持,但是会话管理这块,广播消息的支持,是否有个demo可以看一下?

回答

8

貌似有一个订阅功能即可, 客户端订阅多有的广播消息。 不过唯一需要处理的可能是 服务挂了,要重新连接,连接超时 要继续使用etcd等 服务发现 ,来再找一个可用的服务。继续订阅。

2

go-zero的zrpc是基于grpc的,grpc是基于http2长链接的

6

嗯,我看了一下,是的, 只是服务器貌似找不到相关会话,来主动给客户端推送消息? 我也是昨天刚开始仔细看go-zero,不太清楚是否可以实现 rpcServer 主动推送消息.

3

这个你就需要stream了,并且需要记录client id.

7

好的, 我就自己研究了, 反正 肯定是需要修改一下 go-zero 自动生成的代码了, 应该可以用自定义模板吧。 Grpc的stream,了解了。订阅 功能我在琢磨琢磨,必定要实现的功能。