app.d 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. import std.stdio;
  10. import std.string;
  11. import memcached4d;
  12. void main(){
  13. auto settings = new HTTPServerSettings;
  14. settings.port = 8080;
  15. settings.bindAddresses = ["::1", "127.0.0.1"];
  16. //auto fsettings = new HTTPFileServerSettings;
  17. //fsettings.serverPathPrefix = "/static";
  18. auto router = new URLRouter;
  19. //router.get("/", &index);
  20. ////router.get("static/*", serverStaticFiles("public/", fsettings) );
  21. //router.get("/", staticTemplate!"index.html");
  22. router.get("/", serveStaticFile("public/index.html") );
  23. router.get("/ws", handleWebSockets(&ws_handle) );
  24. router.get("/test", &test);
  25. router.get("*", serveStaticFiles("public/"));
  26. //auto listener = listenHTTP(settings, &hello);
  27. auto listener = listenHTTP(settings, router);
  28. scope (exit){
  29. listener.stopListening();
  30. }
  31. logInfo("Please open http://127.0.0.1:8080/ in your browser.");
  32. runApplication();
  33. }
  34. void ws_handle(scope WebSocket sock){
  35. // simple echo server + :)
  36. while(sock.connected){
  37. auto msg = sock.receiveText();
  38. sock.send(msg ~ " :)");
  39. }
  40. }
  41. /*
  42. void index(HTTPServerRequest req, HTTPServerResponse res){
  43. res.writeBody("Hello, World!");
  44. }
  45. */
  46. /*
  47. void hello(HTTPServerRequest req, HTTPServerResponse res){
  48. res.writeBody("Hello, World!");
  49. }
  50. */
  51. void test(HTTPServerRequest req, HTTPServerResponse res){
  52. auto cache = memcachedConnect("127.0.0.1:11211");
  53. writeln("get test1 = ", cache.get!string("test1"));
  54. string v1 = "value1 = 🔥🦀";
  55. if(cache.store("test1", v1) == RETURN_STATE.SUCCESS ){
  56. writeln("stored successfully");
  57. writeln("get stored: ", cache.get!string("test1") );
  58. }else{
  59. writeln("not stored");
  60. }
  61. string result = cache.get!string("test1");
  62. writeln("get test1 = ", result);
  63. writeln(cache.del("test1"));
  64. res.writeBody("Hello, World!\n" ~ result);
  65. }