sofa-pbrpc
sofa-pbrpc copied to clipboard
服务器主动给客户端发送PB协议,该如何实现?
如题,其实在很多时候不是客户端发送的数据请求,比如有几个用户连接,数据改变,服务器主动推送数据,这种情况下,需要如何扩展呢?多谢。
我觉得这个场景是不是采用发布订阅队列更合适?
在RPC中做的话,可以在RPC Server中附带一个RPC Client发送数据
您是指扩展RPC吗?
用户这边启动一个RPC Server | 服务这边启动一个RPC Client |
---|---|
RpcClient | RpcServer(接受用户的RpcClient请求) |
RpcServer(接收推送数据) | RpcClient(数据变动时推送给用户) |
这样是否清楚?
我试试。。
@LazyPlanet 也可以client 发送一个异步请求到server 端,然后设置一个超时,超时后重新发送请求;server端 有数据就利用response 发送数据给client了
有可能是个方法,但是我觉得这么做就有点山寨了,普通的超时如何处理?这个其实更多的可能需要修改底层的处理逻辑了。多谢您。
既然server和client是长连接,如果client不退出保持长连接,为啥不server直接推送个协议给client呢?
既然server和client是长连接,如果client不退出保持长连接,为啥不server直接推送个协议给client呢?
请问您是怎么解决这个问题的?
https://github.com/apache/incubator-brpc/blob/master/docs/cn/server_push.md
引用一篇brpc的doc
@RgznLbq 自己写一套,不用他这个了。网络层可以参考他。