我在 AWS 上创建了一个带有 Web 套接字的 API 网关。我想使用 VertX 提供的 HttpClient 连接到它。我正在为客户端 Verticle 使用以下代码:
public class WebSocketClient extends AbstractVerticle {
// application address replaced by [address]
protected final String host = "[address].execute-api.us-east-1.amazonaws.com";
protected final String path = "/dev";
protected final int port = 80;
protected final String webSocketAddress = "wss://[address].execute-api.us-east-1.amazonaws.com/dev";
@Override
public void start() throws Exception {
startClient(this.vertx);
}
protected void startClient(Vertx vertx) {
HttpClient client = vertx.createHttpClient();
client.webSocket(port, host, path, asyncWebSocket -> {
if (asyncWebSocket.succeeded()) {
WebSocket socket = asyncWebSocket.result();
System.out.println("Successfully connected. Node closing.");
socket.close().onFailure(throwable -> {
throwable.printStackTrace();
});
} else {
asyncWebSocket.cause().printStackTrace();
}
});
}
}
当我使用在本地主机上运行的 VertX 服务器对其进行测试时,相同的代码可以工作,所以我认为这是正确的 WebSocketConnectionOptions 的问题。
当我尝试使用 HttpClient verticle 连接到 AWS 套接字时,我收到“连接被拒绝”错误。使用 wscat 连接到它没有问题。
非常感谢你的帮助。