【问题标题】:RSocket Java Client to access Binance websocket APIRSocket Java Client 访问 Binance websocket API
【发布时间】:2020-09-09 11:13:57
【问题描述】:

我正在尝试使用带有 Spring 的 RSocket 连接到 Binance websocket 端点,但出现以下异常。

java.lang.AssertionError: expectation "consumeNextWith" failed (expected: onNext(); actual: onError(java.nio.channels.ClosedChannelException))

这是我的测试代码:

@SpringBootTest
@Slf4j
class RSocketClientIntegrationTest {

    private static RSocketRequester requester;

    @BeforeAll
    public static void setupOnce(@Autowired RSocketRequester.Builder builder) {
        // given
        requester = builder
                .connectWebSocket(URI.create("wss://stream.binance.com:9443/ws"))
                .block();
    }

    @Test
    void shouldRetrieveStockPricesFromTheService() {
        //when
        final Flux<String> aggregatedTradeStream = requester
                .route("/bnbbtc@aggTrade")
                .retrieveFlux(String.class)
                .take(1)
                .doOnError(e -> log.error(e.toString()));

        // then
        StepVerifier.create(aggregatedTradeStream)
                .consumeNextWith(response -> {
                    assertThat(response).isNotNull();
                })
                .verifyComplete();
    }
}

我可以使用 RSocket 直接连接到 WebSocket 端点,还是必须创建一个处理 websocket 的 RSocket 服务器,然后从这个代理服务器连接到 websocket?

【问题讨论】:

    标签: java websocket rsocket


    【解决方案1】:

    基于 WebSocket 的 RSocket 使用 websocket 作为传输 RSocket 有效负载的传输方式。因此,您无法连接到原始 WebSocket 并期望任何东西都能正常工作。

    尝试针对类似端点测试上述程序

    wss://rsocket-demo.herokuapp.com/rsocket

    请参阅https://rsocket-demo.herokuapp.com/ 的文档

    【讨论】:

    • 感谢您的回复。你是对的。 Binance Websocket不是RSocket端点,所以我不能使用RSocket连接。
    猜你喜欢
    • 1970-01-01
    • 2022-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多