当前位置: 首页 > 知识库问答 >
问题:

Spring Webflux:非Java客户端的背压

单展
2023-03-14

是否有任何方法可以对非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);
    }
}

如果延迟==0一次打印所有数字,但如果延迟!=0在打印每个数字之前都会暂停。除了JS之外,还有什么方法可以做到这一点吗?在我查看的所有Internet示例中,JS客户端只能监听事件流。如果Rest控制器返回生产者,如Flux.range(1,100),是否可以改变客户端上事件的频率?

共有1个答案

秦安宁
2023-03-14

不,因为HTTP协议不支持应用程序背压。您可能会对RSocket感兴趣,它是一种在协议级别支持背压的应用程序协议,以及许多其他功能。

 类似资料:
  • 我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se

  • 问题内容: 对于某些集成项目,我想从非Java客户端查询JMX代理。 到目前为止,我发现了两个选项,ws-jmx- connector(基于Soap)和mx4j及其返回XML文档响应的JMX HTTP适配器 。基于JSR 262的ws-jmx- connector似乎不再处于积极开发中。我没有尝试过MX4J,所以我不知道是否可以在J2SE中将HTTP适配器与标准JMX实现一起使用。 是否还有其他软

  • 我正在尝试重建一个与elasticsearch 2.4对话的插件,以便与elasticsearch 5配合使用。 代码来自:https://github.com/pentaho/pentaho-kettle/blob/master/plugins/elasticsearch-bulk-insert/src/org/pentaho/di/trans/steps/elasticsearchbulk/E

  • 问题内容: 是否有适用于Java的Socket.IO客户端?到目前为止,我只找到了仅适用于JavaScript的官方Socket.IO客户端和仅作为服务器的socket.io- java。 问题答案: 目前的选项有限: http://code.google.com/p/weberknecht/ https://github.com/TooTallNate/Java-WebSocket https:

  • 问题内容: 哪个是最好的Java Memcached客户端,为什么? 问题答案: 作为spymemcached的作者,我有些偏颇,但是我说这是我的,原因如下: 从头开始设计,以尽可能地不受阻碍。 当您请求数据,发布数据集等时,会有一个微小的并发队列插入,并且您会得到一个Future来阻止结果(使用一些便捷方法来处理诸如get之类的常见情况)。 积极优化 您可以在我的优化页面上阅读更多信息,但是我会

  • 我正在尝试使用RMI客户机-服务器通信。我编写了以下类/接口: > 接口远程接口扩展远程 类HelloStub扩展UnicastRemoteObject实现远程接口 类服务器,我绑定了远程obj 将客户端分类如下: 我不明白为什么我必须使用interface RemoteInterface进行查找?我不能使用HelloSub类吗,它是真正的远程obj? 谢谢,再见。