2017-05-08 3 views
0

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.

Antwort

0

Was Sie suchen, heißt StaticHandler.

router.route("/web/*").handler(StaticHandler.create()); 
+0

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; –

+0

@DanielRuiz, ja. Sie verwenden den Router sowieso nur für statische Dateien. Alle Ihre Daten werden über Websockets gesendet. –

+0

Gut Alexey, ich habe eine E-Mail geschrieben, wenn Sie mir bitte helfen können! Lies es. –