[英]RSocket Java Client to access Binance websocket API
I am trying to connect to Binance websocket endpoint using RSocket with Spring, but I am getting the following exception.我正在尝试使用 RSocket 和 Spring 连接到 Binance websocket 端点,但出现以下异常。
java.lang.AssertionError: expectation "consumeNextWith" failed (expected: onNext(); actual: onError(java.nio.channels.ClosedChannelException))
Here is my testing code:这是我的测试代码:
@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();
}
}
Can I connect straight into a WebSocket endpoint using RSocket or do I have to create a RSocket server that handles the websocket and then from this proxy server I connect to the websocket?我可以使用 RSocket 直接连接到 WebSocket 端点,还是必须创建一个处理 websocket 的 RSocket 服务器,然后从这个代理服务器连接到 websocket?
RSocket over WebSocket uses websocket as a transport to carry RSocket payloads. RSocket over WebSocket 使用 websocket 作为传输 RSocket 负载的传输方式。 So you can't connect to a raw WebSocket and expect anything to work.
因此,您无法连接到原始 WebSocket 并期望任何事情都能正常工作。
Try testing the above program against an endpoint like尝试针对端点测试上述程序
wss://rsocket-demo.herokuapp.com/rsocket wss://rsocket-demo.herokuapp.com/rsocket
See docs at https://rsocket-demo.herokuapp.com/请参阅https://rsocket-demo.herokuapp.com/ 上的文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.