app.d 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //import vibe.vibe;
  2. // https://github.com/vibe-d/vibe.d/blob/master/source/vibe/vibe.d
  3. import vibe.core.core;
  4. import vibe.http.router;
  5. import vibe.http.server;
  6. import vibe.http.fileserver;
  7. import vibe.http.websockets;
  8. import vibe.core.log;
  9. void main(){
  10. auto settings = new HTTPServerSettings;
  11. settings.port = 8080;
  12. settings.bindAddresses = ["::1", "127.0.0.1"];
  13. //auto fsettings = new HTTPFileServerSettings;
  14. //fsettings.serverPathPrefix = "/static";
  15. auto router = new URLRouter;
  16. //router.get("/", &index);
  17. ////router.get("static/*", serverStaticFiles("public/", fsettings) );
  18. //router.get("/", staticTemplate!"index.html");
  19. router.get("/", serveStaticFile("public/index.html") );
  20. router.get("/ws", handleWebSockets(&ws_handle) );
  21. router.get("*", serveStaticFiles("public/"));
  22. //auto listener = listenHTTP(settings, &hello);
  23. auto listener = listenHTTP(settings, router);
  24. scope (exit){
  25. listener.stopListening();
  26. }
  27. logInfo("Please open http://127.0.0.1:8080/ in your browser.");
  28. runApplication();
  29. }
  30. void ws_handle(scope WebSocket sock){
  31. // simple echo server + :)
  32. while(sock.connected){
  33. auto msg = sock.receiveText();
  34. sock.send(msg ~ " :)");
  35. }
  36. }
  37. /*
  38. void index(HTTPServerRequest req, HTTPServerResponse res){
  39. res.writeBody("Hello, World!");
  40. }
  41. */
  42. /*
  43. void hello(HTTPServerRequest req, HTTPServerResponse res){
  44. res.writeBody("Hello, World!");
  45. }
  46. */