Vert.x Websocket客户端-400错误的请求

VB_*_*VB_ 0 java websocket vert.x java-websocket vertx-httpclient

如何从Java Vertex连接Cex.IO Websocket API

问题是Vert.x不能像Node.JS那样为我提供仅与WsURI连接的方法。我必须指定端口和主机并获取HTTP 400 Bad Request异常。

使用Node.js,您可以:

var WebSocketClient = require('websocket').client;
var client = new WebSocketClient();
client.connect("wss://ws.cex.io/ws/");
Run Code Online (Sandbox Code Playgroud)

使用Vert.x,您必须做

int host = 443; // That's defaults
String host = "cex.io"; // Am I right by specifying this host?
HttpClient client = Vertx.vertx().createHttpClient();
client.websocket(port, host, "wss://ws.cex.io/ws/", ws -> { ...});
Run Code Online (Sandbox Code Playgroud)

tse*_*ont 5

HttpClient#websocket方法将相对URI作为第三个参数。

您应该可以这样连接:

client = vertx.createHttpClient(new HttpClientOptions()
  .setDefaultHost("ws.cex.io")
  .setDefaultPort(443)
  .setSsl(true));

client.websocket("/ws", ws -> {
  // Work with the websocket
});
Run Code Online (Sandbox Code Playgroud)