有人可以帮助我了解如何在 ReadStream 和 WriteStream 全双工的情况下发送错误。
这是示例 proto 文件。
syntax = "proto3";
option java_multiple_files = true;
option java_package = "com.pace.vertx.grpc.generated";
package com.pace.vertx.grpc.generated;
service ArrangementService {
rpc GetArrangementDetails (stream ArrangementRequest) returns (stream ArrangementAllDetails) {}
}
message ArrangementRequest {
string arrangementId = 1;
}
message ArrangementAllDetails {
string arrangementDetails = 1;
}
这是我目前的代码。
BindableService vertxArrangementServiceGrpc = new VertxArrangementServiceGrpc.ArrangementServiceVertxImplBase() {
@Override
public void getArrangementDetails(ReadStream<ArrangementRequest> request, WriteStream<ArrangementAllDetails> response) {
Pump.pump((ReadStream)request, response).start();
request.handler(arrangementRequest -> {
couchbaseDAO.getReactiveCollection()
.get(arrangementRequest.getArrangementId())
.map(getResult -> getResult
.contentAsObject()
.removeKey("key_tx")
.removeKey("version"))
.subscribe(
jsonObject -> response.end(ArrangementAllDetails.newBuilder().setArrangementDetails(jsonObject.toString()).build()),
error -> ?????
);
});
}
}
.withCompression("gzip");
如何将错误发送回错误订阅块中?