index.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const http = require('http');
  2. const log = require('hlogger').createLogger('core-http');
  3. var activator = {
  4. start(context) {
  5. this.server = http.createServer((req,res) => {
  6. var lurl = req.url.replace(/^\/|\/$/g,''); // remove all starting "/" or ending "/"
  7. // New
  8. context.events
  9. .channel(context.name, "request",req.method)
  10. .propagate(lurl,req,res)
  11. .then((e) => {
  12. if(e.count == 0 || res.statusCode == 404) {
  13. res.writeHead(404,"Not found");
  14. res.end("Not found");
  15. }
  16. });
  17. // Different way
  18. });
  19. //
  20. log.info("Server started at: " + 3500);
  21. this.server.listen(3500);
  22. this.clients = {};
  23. this.server.on('connection',(conn) => {
  24. var key = conn.remoteAddress + ':' + conn.remotePort;
  25. this.clients[key] = conn;
  26. conn.on('close',() => {
  27. delete this.clients[key];
  28. });
  29. });
  30. this.server.on('close',() => {
  31. log.info("Http server went down");
  32. for(var k in this.clients) {
  33. this.clients[k].destroy();
  34. };
  35. });
  36. },
  37. stop(context) {
  38. log.info("Server shutting down");
  39. this.server.close() // Shutdown clients
  40. for(var k in this.clients) {
  41. this.clients[k].destroy();
  42. };
  43. //this.server.emit('user:close');
  44. }
  45. }
  46. module.exports.bundleActivator = activator;