Ich mache einen Client/Server Websocket. Der Client ist in JavaScript, ich habe ihn bereits und der Server ist in Vert.x (Java), wo ich die Zweifel habe, weil ich einen Code in Vert.x 2 gefunden habe und mir jemand helfen möchte, ihn zu konvertieren Vert .x 3WebSocket Server in Vert.x 2 (Übersetzung in 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
}
} ich habe ein wenig übersetzt, aber ich weiß nicht sehr gut den Teil des .get ("* (Css |.. js)") ...... I folgendes haben:
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
}
ich weiß nicht, ob es richtig, was habe ich übersetzt und haben, wenn Sie mich in Vert.x drehen kann helfen 3.
Dann setzen nicht .... routingContext -> { routingContext.request() Antwort() sendfile ("index2.html")..; }) .handler (routingContext -> { routingContext.request(). Response(). SendFile ("web /" + neue Datei (routingContext.request(). Path())); }); Würde alles durch StaticHandler.create() ersetzen; –
@DanielRuiz, ja. Sie verwenden den Router sowieso nur für statische Dateien. Alle Ihre Daten werden über Websockets gesendet. –
Gut Alexey, ich habe eine E-Mail geschrieben, wenn Sie mir bitte helfen können! Lies es. –