Как использовать маршруты с реактивным websocketstream в vertx - PullRequest
0 голосов
/ 01 февраля 2019
    Vertx vertx = Vertx.vertx();
    var router = Router.router(vertx).route("/entity/:id")
    vertx.createHttpServer()
        .websocketStream()
        .toObservable()
        .subscribe(sock -> sock.)
        .map(ServerWebSocket::toObservable)

Я новичок в vert.x Мне удалось создать наблюдаемый сокет, но я не понимаю, как использовать маршруты и параметры URL-маршрутов с реактивной версией API.

1 Ответ

0 голосов
/ 02 февраля 2019

Веб-маршрутизатор Vert.x работает с HTTP-запросами.Вы можете использовать его для обработки запроса upgrade к веб-сокету:

router.route("/entity/:id").handler(rc -> {
  String entityId = rc.pathParam("id");
  HttpServerRequest request = rc.request();
  ServerWebSocket webSocket = request.upgrade();
  webSocket.frameHandler(frame -> {
    webSocket.writeFrame(WebSocketFrame.textFrame("Pong " + entityId, true));
  });
  webSocket.accept();
});

Внутри обработчика маршрутизатора вы можете получить параметры пути с помощью метода RoutingContext#pathParam.

...