java - 如果客户端在 GRPC 服务器端流中重新启动,如何继续流?
问题描述
@Override
public void response(RequestApp request, Grpc.Stub asyncStub) {
StreamObserver<Dto> streamObserver = new StreamObserver<Dto>() {
@Override
public void onNext(Response response) {
LOGGER.info("Response is received.");
}
@Override
public void onError(Throwable thrwbl) {
LOGGER.error("Get error.");
}
@Override
public void onCompleted() {
LOGGER.info("Stream is completed.");
}
};
asyncStub.method(request, streamObserver);
}
Grpc Client 代码如上所示。这里有服务器端流。如果客户端重新启动,在服务器端流启动后,如何继续这个流?
解决方案
如果连接因任何原因丢失,您将无法恢复正在进行的流。如果您希望服务器从数据流中的前一个点开始发送数据,您可以让客户端在请求中包含一个令牌,服务器可以使用该令牌作为从哪里开始的指示。
推荐阅读
- c# - 有人可以解释为什么这个 LINQ-to-entitiy 查询会导致错误,以及为什么我的解决方案会修复它吗?
- javascript - React-router/history 阻止“beforeinstallprompt”事件触发
- javascript - 使用 console.log 创建带有明确标题/文本的链接
- javascript - 创建一个不基于数据库的 Like 计数器
- google-ads-api - Google Ads 和 Facebook Ads 的替代品
- android-camerax - CameraX 在获取 cameraProviderFuture 时崩溃
- react-native - 类型突变上不存在字段“登录”
- javascript - 使用 useEffect 在 FlatList 中传递更新的数据
- javascript - JS fetch API:如何使用一个异步函数从多个文件中获取内容?
- powershell - 合并 cmdlet 输出