如何在vertx中使用带有反应性websocketstream的路由

如何在vertx中使用带有反应性websocketstream的路由,websocket,rx-java2,vert.x,Websocket,Rx Java2,Vert.x,我是vert.x新手,我已经设法创建了一个可观察的套接字,但我不知道如何在反应式API版本中使用路由和url路由参数。vert.x Web router处理HTTP请求。您可以使用它来处理升级到websocket的请求: Vertx vertx = Vertx.vertx(); var router = Router.router(vertx).route("/entity/:id") vertx.createHttpServer() .websocket

我是vert.x新手,我已经设法创建了一个可观察的套接字,但我不知道如何在反应式API版本中使用路由和url路由参数。

vert.x Web router处理HTTP请求。您可以使用它来处理升级到websocket的
请求:

    Vertx vertx = Vertx.vertx();
    var router = Router.router(vertx).route("/entity/:id")
    vertx.createHttpServer()
        .websocketStream()
        .toObservable()
        .subscribe(sock -> sock.)
        .map(ServerWebSocket::toObservable)

在路由器处理程序中,您可以使用
RoutingContext#pathParam
方法检索路径参数。

Um,好的。与
@ServerEndpoint
@PathParam
类似的是什么?我可能误解了你的问题。您想使连接升级到websocket成为可能,但前提是端点为
/entity/:id
,对吗?是的,如果可能,请使用此解析的
id
。谢谢,但如何使用rx实现此目的?从我的代码中可以看出,我使用的是
Observable
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();
});