volo-grpc stream怎么监听客户端断开事件,我想客户端断开后做一些后续清理工作
Feature Request
Crates
Motivation
Proposal
Alternatives
是指在 server 端监听连接的断开吗?这个目前还不支持
是的哦,不然我stream长连接的数据是客户端主动断开的不好清除,积累多了会出大问题的,麻烦尽快支持下呢
断开了这边的stream应该就会返回错误?在那个时候清理数据?现在 volo-grpc 里获取到连接后是丢给 hyper 去管理的,可能不太好支持
给个返回错误处理的样例可以吗,或者能提供给断开的监听事件,不然信息不及时处理,内存爆了,再快也没用哈
给个返回错误处理的样例可以吗,或者能提供给断开的监听事件,不然信息不及时处理,内存爆了,再快也没用哈
比如双向streaming的时候,server端在取request取到None的时候就代表这条stream finish了 https://github.com/cloudwego/volo/blob/main/examples/src/grpc/streaming/server.rs#L82
主动断开是这个错误DEBUG volo_grpc::server: [VOLO] connection error: hyper::Error(Io, Kind(ConnectionReset)),不是正常finish @Millione
我不太了解 grpc 这边的实现,不过我觉得可以自己实现一个 wrapper,把原有的 stream 套在里面,然后给自己的结构体实现 Drop?
我觉得应该添加服务事件处理器 @yukiiiteru
我理解连接主动断开后,连接上的 Stream 都会被 drop,如 @yukiiiteru 所说,在那个时候清理就好了?
我也理解不了,你们为啥不自己试试,你之前说的方法,压根不管用呢,好像区分不了正常和异常情况 @Millione
我也理解不了,你们为啥不自己试试,你之前说的方法,压根不管用呢,好像区分不了正常和异常情况 @Millione
能提供一下你这个使用场景的最小示例吗,我再具体试试
给到一种解决办法,定时检查下stream发送端是不是关闭就可以达到这个目的了