diff --git a/samples/grpc-webflux-secure/src/main/java/org/springframework/grpc/sample/GrpcServerService.java b/samples/grpc-webflux-secure/src/main/java/org/springframework/grpc/sample/GrpcServerService.java index ed22c564..609f789e 100644 --- a/samples/grpc-webflux-secure/src/main/java/org/springframework/grpc/sample/GrpcServerService.java +++ b/samples/grpc-webflux-secure/src/main/java/org/springframework/grpc/sample/GrpcServerService.java @@ -1,5 +1,7 @@ package org.springframework.grpc.sample; +import java.time.Duration; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.grpc.sample.proto.HelloReply; @@ -8,6 +10,7 @@ import org.springframework.stereotype.Service; import io.grpc.stub.StreamObserver; +import reactor.core.publisher.Flux; @Service public class GrpcServerService extends SimpleGrpc.SimpleImplBase { @@ -31,21 +34,12 @@ public void sayHello(HelloRequest req, StreamObserver responseObserv @Override public void streamHello(HelloRequest req, StreamObserver responseObserver) { log.info("Hello " + req.getName()); - int count = 0; - while (count < 10) { - HelloReply reply = HelloReply.newBuilder().setMessage("Hello(" + count + ") ==> " + req.getName()).build(); - responseObserver.onNext(reply); - count++; - try { - Thread.sleep(1000L); - } - catch (InterruptedException e) { - Thread.currentThread().interrupt(); - responseObserver.onError(e); - return; - } - } - responseObserver.onCompleted(); + + // Use reactive Flux.interval() instead of blocking Thread.sleep() + Flux.interval(Duration.ofSeconds(1)) + .take(10) + .map(count -> HelloReply.newBuilder().setMessage("Hello(" + count + ") ==> " + req.getName()).build()) + .subscribe(responseObserver::onNext, responseObserver::onError, responseObserver::onCompleted); } } \ No newline at end of file diff --git a/samples/grpc-webflux/src/main/java/org/springframework/grpc/sample/GrpcServerService.java b/samples/grpc-webflux/src/main/java/org/springframework/grpc/sample/GrpcServerService.java index ed22c564..609f789e 100644 --- a/samples/grpc-webflux/src/main/java/org/springframework/grpc/sample/GrpcServerService.java +++ b/samples/grpc-webflux/src/main/java/org/springframework/grpc/sample/GrpcServerService.java @@ -1,5 +1,7 @@ package org.springframework.grpc.sample; +import java.time.Duration; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.grpc.sample.proto.HelloReply; @@ -8,6 +10,7 @@ import org.springframework.stereotype.Service; import io.grpc.stub.StreamObserver; +import reactor.core.publisher.Flux; @Service public class GrpcServerService extends SimpleGrpc.SimpleImplBase { @@ -31,21 +34,12 @@ public void sayHello(HelloRequest req, StreamObserver responseObserv @Override public void streamHello(HelloRequest req, StreamObserver responseObserver) { log.info("Hello " + req.getName()); - int count = 0; - while (count < 10) { - HelloReply reply = HelloReply.newBuilder().setMessage("Hello(" + count + ") ==> " + req.getName()).build(); - responseObserver.onNext(reply); - count++; - try { - Thread.sleep(1000L); - } - catch (InterruptedException e) { - Thread.currentThread().interrupt(); - responseObserver.onError(e); - return; - } - } - responseObserver.onCompleted(); + + // Use reactive Flux.interval() instead of blocking Thread.sleep() + Flux.interval(Duration.ofSeconds(1)) + .take(10) + .map(count -> HelloReply.newBuilder().setMessage("Hello(" + count + ") ==> " + req.getName()).build()) + .subscribe(responseObserver::onNext, responseObserver::onError, responseObserver::onCompleted); } } \ No newline at end of file