c++ - 如何告诉 gRPC 客户端告诉 gRPC 服务器是否已取消?
问题描述
我正在使用同步双向流式传输 grpc 服务,并且我让服务器端在检测到超时时关闭连接。
// server-side code
if (timeout-detected) {
server_context_->TryCancel();
}
我的问题是:如何检测连接在客户端是否仍然有效?如果是这样,我可以重新建立连接。我试过了
// client-side code
if (client_reader_writer_->Write(&request)) {
// I consider it connection is still valid
} else {
// connection decided cancelled. Re-establish connection and do something.
}
但client_reader_writer_->Write(&request)
返回 true,即使服务器的日志显示已取消。
如果有人能给我一些提示,我将不胜感激!
解决方案
推荐阅读
- shell - 使用 AWK 无法正确执行 Shell 脚本
- nginx - 连接后 Nginx 代理返回 http 400
- reactjs - 如何在 react 中向 chart.js 添加数据
- docker - Airflow DockerOperator 卷和挂载
- amazon-s3 - 您可以在 AWS Athena 上运行 SOUNDEX 查询吗?
- python - 列表理解字符串交替模式递增
- sql - 将 sql while 循环重构为常规插入
- powershell - 使用 YAML 管道部署 Azure 分析服务和 Azure DB 连接
- javascript - 使用 map 函数创建 React 组件
- python - 根据列名将一个热编码列汇总到它们的各个列中