连接丢失后,RSocket恢复会话/流

我正在使用RSocket通道并尝试实现恢复功能,以防与服务器的连接丢失。在服务器和移动设备上尝试了resume(),resumeSessionDuration(),resumeStreamTimeout()和resumecleanupOnKeepAlive()/ documentation:https://javadoc.io/static/io.rsocket/rsocket-core/1.0.0-RC3/io/rsocket/RSocketFactory.ServerRSocketFactory.html#resume--/的不同组合之后,仍然没有任何反应。在移动设备上,我每10秒钟将数据发送到服务器,当连接断开时,套接字将在第3次重试。有谁知道服务器端和客户端这些方法到底能做什么?几乎没有任何文档...

这是服务器上的代码:

RSocketFactory.receive()
                    .resume()
                    .acceptor((setupPayload,reactiveSocket) -> Mono.just(responseHandler))
                    .transport(TcpServerTransport.create(buildSecuredTcpServer(address,port,sslContext)))
                    .start()
                    .block();

这是移动设备上的代码:

 socket = RSocketFactory.connect()
        .errorConsumer(throwable -> {
            if (throwable instanceof RejectedResumeException){
                Log.d("tagg","error: " + throwable.getMessage());
            }
        })
        .resume()
        .resumeStreamTimeout(Duration.ofSeconds(120))
        .resumeSessionDuration(Duration.ofSeconds(600))
        .keepAlive(Duration.ofSeconds(120),Duration.ofSeconds(120),120)
        .resumeStrategy(() -> new PeriodicResumeStrategy(Duration.ofSeconds(1)))
        .metadataMimeType(BuildConfig.RSOCKET_MetaDATA_MIME_TYPE)
        .dataMimeType(BuildConfig.RSOCKET_DATA_MIME_TYPE)
        .transport(TcpClientTransport.create(tcpClient))
        .start()
        .block();
Objects.requireNonNull(socket)
        .requestChannel(Flux.from(this::onSubscribe))
        .doOnNext(this::receiveData)
        .retryBackoff(Integer.MAX_VALUE,Duration.ofSeconds(1))
        .subscribe();
no1xzb 回答:连接丢失后,RSocket恢复会话/流

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2692118.html

大家都在问