0
我正在做一个客户端/服务器Websocket。客户端在JavaScript中我已经拥有它,而服务器在Vert.x(Java)中,这是我有疑问的地方,因为我在Vert.x 2中找到了一个代码,我希望有人帮助我将它转换为韦尔.X 3Vert.x 2中的WebSocket服务器(转换为Vert.x 3)?
public class WebserverVerticle extends Verticle {
@Override
public void start() {
final Pattern chatUrlPattern = Pattern.compile("/chat/(\\w+)");
final EventBus eventBus = vertx.eventBus();
// 1) HTTP Server
RouteMatcher httpRouteMatcher = new RouteMatcher().get("/", new
Handler<HttpServerRequest>() {
@Override
public void handle(final HttpServerRequest request) {
request.response().sendFile("web/chat.html");
}
}).get(".*\\.(css|js)$", new Handler<HttpServerRequest>() {
@Override
public void handle(final HttpServerRequest request) {
request.response().sendFile("web/" + new File(request.path()));
}
});
vertx.createHttpServer().requestHandler(httpRouteMatcher).listen(8080,
"localhost");
// 2) Websockets Chat Server
// Aquí vendría el código de la segunda parte
....................
// Lo paso luego
}
} 我有一个小翻译,但我不知道。获得的很好的部分( “*(CSS |。JS)”)......我有以下几点:
public class WebserverVerticle extends AbstractVerticle{
public void start(Future<Void> startFuture) {
Router router = Router.router(vertx);
Pattern chatUrlPattern = Pattern.compile("/chat/(\\w+)");
EventBus eventBus = vertx.eventBus();
//HTTP Server
router.route("/").handler(routingContext -> {
routingContext.request().response().sendFile("index2.html");
}).handler(routingContext -> {
routingContext.request().response().sendFile("web/" + new File(routingContext.request().path()));
});
vertx.createHttpServer().requestHandler(router::accept).listen(8080, "localhost");
//Websocket Chat Server
}
我不知道这是否是对我所翻译,如果您能帮助我把它变成Vert.x 3.
然后不把.... routingContext - > { routingContext.request()响应()的sendfile( “index2.html”)。。 ();}};}}。handler(routingContext - > {0} {0} {0} 将取代所有StaticHandler.create()); –
@DanielRuiz,是的。无论如何,您只能将路由器用于静态文件。所有的数据都通过websockets发送。 –
好阿列克谢,我写了一封电子邮件,如果你可以帮我请!阅读。 –