2017-05-08 1 views
0

Je fais une Websocket client/serveur. Le client est en JavaScript Je l'ai déjà et le serveur est en Vert.x (Java), ce qui est là où j'ai des doutes, parce que j'ai trouvé un code dans Vert.x 2 et j'aimerais que quelqu'un m'aide à le convertir en Vert .x 3Serveur WebSocket dans Vert.x 2 (Traduction vers 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 
} 

} J'ai un peu traduit mais je ne sais pas très bien la partie de la .get ("* (Css |.. js)") ...... I ont les éléments suivants:

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 
} 

Je ne sais pas si elle est juste ce que j'ai traduit et avoir si vous pouvez me aider à le transformer en vert.x 3.

Répondre

0

Qu'est-ce que vous cherchez appelé StaticHandler.

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

ne pas mettre .... routingContext -> { routingContext.request() réponse() SENDFILE (le "index2.html").. }). Handler (routingContext -> { routingContext.request(). Response(). SendFile ("web /" + nouveau fichier (routingContext.request(). Path())); }); Serait de remplacer tout cela par StaticHandler.create()); –

+0

@DanielRuiz, oui. Vous utilisez le routeur uniquement pour les fichiers statiques de toute façon. Toutes vos données sont envoyées via des Websockets. –

+0

Bon Alexey, j'ai écrit un mail si tu peux m'aider s'il te plait! Lis le. –