【发布时间】:2015-11-09 17:53:33
【问题描述】:
我在 Vert.x 中有一个 Socket 处理程序,并且我知道如何通过客户端到服务器(从 Web 浏览器到 Web 服务器)和服务器组件到中的 EventBus 发送数据-服务器组件模型。
现在我有一个 JavaFX 客户端通过 websockets 连接到 Vert.x 套接字处理程序:
public void start() {
vertx.createHttpClient()
.setHost(Main.SOCKET_SERVER)
.setPort(8080)
.connectWebsocket("/chat/service", new Handler<WebSocket>() {
@Override
public void handle(WebSocket websocket) {
ws = websocket;
websocket.dataHandler(new Handler<Buffer>() {
@Override
public void handle(Buffer data) {
System.out.println("Received Data");
}
});
//...
// use ws for authentification
ws.writeTextFrame("doAuthentification");
//...
}
}
}
Socket 连接到“/chat/service”。
现在我想使用这个 Websocket 从 Vert.x 调用不同的服务。我知道 EventBus 在 JavaFX-Client 上不起作用。
在服务器上:
ws.dataHandler(new Handler<Buffer>() {
@Override
public void handle(final Buffer data) {
String text = data.toString();
if(text.contentEquals("doAuthentification")){
logger.info("doAuthentification()");
doAuthentification();
}
// ...
}
}
我现在可以通过 WebSocket 发送像 doAuthentification 这样的“命令”,然后,在服务器端,当收到该命令时,我可以使用 EventBus 进一步处理它。
从客户端使用它的正确方法是什么。想法?
【问题讨论】:
-
JavaFX 客户端是部署为
verticle还是独立应用程序? -
嗨。它是一个独立的应用程序。不作为垂直运行。
标签: javafx websocket event-bus vert.x