@GRpcService
public class MyService extends MyServiceGrpc.MyServiceImplBase {
@Override
public StreamObserver<MyRequest> myMethod(StreamObserver<MyResponse> responseObserver) {
return new StreamObserver<MyRequest>() {
@Override
public void onNext(MyRequest request) {
MyResponse response = generateResponse(request);
responseObserver.onNext(response);
}
@Override
public void onError(Throwable t) {
}
@Override
public void onCompleted() {
responseObserver.onCompleted();
}
};
}
private MyResponse generateResponse(MyRequest request) {
}
}
public class MyClient {
private MyServiceGrpc.MyServiceStub stub;
public void myMethod() {
StreamObserver<MyResponse> responseObserver = new StreamObserver<MyResponse>() {
@Override
public void onNext(MyResponse response) {
}
@Override
public void onError(Throwable t) {
}
@Override
public void onCompleted() {
}
};
StreamObserver<MyRequest> requestObserver = stub.myMethod(responseObserver);
requestObserver.onNext(request1);
requestObserver.onNext(request2);
// ...
requestObserver.onCompleted();
}
}
@GRpcService
public class MyService extends MyServiceGrpc.MyServiceImplBase {
@Override
public void myMethod(MyRequest request, StreamObserver<MyResponse> responseObserver) {
ServerCallStreamObserver<MyResponse> serverCallStreamObserver = (ServerCallStreamObserver<MyResponse>) responseObserver;
serverCallStreamObserver.disableAutoRequest();
serverCallStreamObserver.request(1);
for (int i = 0; i < 10; i++) {
MyResponse response = generateResponse(request);
serverCallStreamObserver.onNext(response);
}
serverCallStreamObserver.onCompleted();
}
private MyResponse generateResponse(MyRequest request) {
}
}
public class MyClient {
private MyServiceGrpc.MyServiceStub stub;
public void myMethod() {
ClientCallStreamObserver<MyResponse> clientCallStreamObserver = (ClientCallStreamObserver<MyResponse>) responseObserver;
clientCallStreamObserver.disableAutoInboundFlowControl();
clientCallStreamObserver.setOnReadyHandler(new Runnable() {
@Override
public void run() {
while (clientCallStreamObserver.isReady()) {
MyResponse response = clientCallStreamObserver.receive();
clientCallStreamObserver.request(1);
}
}
});
stub.myMethod(request, responseObserver);
}
}
@GRpcService
public class MyService extends MyServiceGrpc.MyServiceImplBase {
@Override
public StreamObserver<MyRequest> myMethod(StreamObserver<MyResponse> responseObserver) {
return new StreamObserver<MyRequest>() {
@Override
public void onNext(MyRequest request) {
try {
MyResponse response = generateResponse(request);
responseObserver.onNext(response);
} catch (Exception e) {
responseObserver.onError(e);
}
}
@Override
public void onError(Throwable t) {
}
@Override
public void onCompleted() {
responseObserver.onCompleted();
}
};
}
private MyResponse generateResponse(MyRequest request) {
}
}
public class MyClient {
private MyServiceGrpc.MyServiceStub stub;
public void myMethod() {
StreamObserver<MyResponse> responseObserver = new StreamObserver<MyResponse>() {
@Override
public void onNext(MyResponse response) {
}
@Override
public void onError(Throwable t) {
}
@Override
public void onCompleted() {
}
};
StreamObserver<MyRequest> requestObserver = stub.myMethod(responseObserver);
try {
requestObserver.onNext(request1);
requestObserver.onNext(request2);
// ...
requestObserver.onCompleted();
} catch (Exception e) {
requestObserver.onError(e);
}
}
}