У меня есть обработчик Socket в Vert.x, и я знаю, как отправлять данные через EventBus в режиме клиент-сервер (из веб-браузера на веб-сервер) и сервер-компонент-сервер. комплектующие мод.
Теперь у меня есть JavaFX-клиент, подключенный к обработчику сокетов 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");
//...
}
}
}
Сокет подключен к "/chat/service".
Теперь я хочу использовать этот веб-сокет для вызова различных служб из 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();
}
// ...
}
}
Теперь я могу отправлять «команды», такие как doAuthentification, через WebSocket, затем на стороне сервера, и когда эта команда получена, я могу использовать EventBus для ее дальнейшей обработки.
Каким будет правильный способ использования его от клиента. Идеи?
verticle
или как отдельное приложение? - person tmarwen   schedule 19.08.2015