#java #stream #grpc #server-side #stub
#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 похож на приведенный выше. Здесь есть потоковая передача на стороне сервера. Если клиент перезапущен, после запуска потока на стороне сервера, как продолжить этот поток?
Ответ №1:
Вы не можете возобновить текущий поток, если соединение потеряно по какой-либо причине. Если вы хотите, чтобы сервер начал отправлять данные с предыдущей точки в потоке данных, вы можете попросить клиента включить токен в запрос, который сервер может использовать в качестве указания, с чего начать.