是否可以对非Java订户(例如,某些JS库)使用背压?
为此发布者
Flux.range(1, 100)
和该订户:
public class SystemOutBackpressureSubscriber<T> extends BaseSubscriber<T> {
private int delay;
public SystemOutBackpressureSubscriber(int delay) {
this.delay = delay;
}
public void hookOnSubscribe(Subscription subscription) {
request(1);
}
public void hookOnNext(T value) {
System.out.println(value);
if(delay != 0) {
try {
Thread.sleep(delay);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
request(1);
}
}
如果delay == 0
一次打印所有数字,但是如果delay != 0
在每个数字打印之前有暂停。除了JS,还有其他方法可以做到吗?在我查看过的所有互联网示例中,JS客户端只能监听事件流。如果Rest控制器返回Flux.range(1, 100)
之类的生产者,是否有可能改变客户端事件的发生频率?