是否有适用于Vert.x的Java SockJS客户端?
类似于TCP / IP网桥,但基于SockJS。
原因是我们需要一个统一的协议栈,连接客户端
到Vert.x.对于JavaScript,我们可以使用vertx3-eventbus-client,它工作得很好。
我们现在正在寻找类似的Java解决方案。
答案 0 :(得分:0)
还没有(正在进行中的工作)。但是,您可以使用Vert.x HttpClient
:
以下是一个例子:
client.websocket(HTTP_PORT, HTTP_HOST, "/eventbus/websocket", ws -> {
JsonObject msg = new JsonObject().put("type", "ping");
ws.writeFrame(io.vertx.core.http.WebSocketFrame.textFrame(msg.encode(), true));
// Send pings periodically to avoid the websocket connection being closed
vertx.setPeriodic(5000, id -> {
JsonObject msg = new JsonObject().put("type", "ping");
ws.writeFrame(io.vertx.core.http.WebSocketFrame.textFrame(msg.encode(), true));
});
// Register
JsonObject msg = new JsonObject().put("type", "register").put("address", "my-address");
ws.writeFrame(io.vertx.core.http.WebSocketFrame.textFrame(msg.encode(), true));
ws.handler(buff -> {
JsonObject json = new JsonObject(buff.toString()).getJsonObject("body");
// Do stuff with the body
});
});
如果您需要使用不同的地址,那么您的处理程序将不得不检查JSON对象,而不仅仅是获取正文。