index.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. const http = require('http');
  2. const log = require('hlogger').createLogger('hci-http');
  3. var activator = {
  4. start(context) {
  5. this.server = http.createServer((req,res) => {
  6. // Global emmit
  7. context.emit('req',req,res) //??
  8. .done((evt) => {
  9. // Array of results
  10. if(res.statusCode == 404 || evt.count == 0) {
  11. res.writeHead(404,"Not found");
  12. res.end("Not found");
  13. }
  14. });
  15. // Setup stuff here to routing
  16. });
  17. //
  18. log.info("Server started at: " + 3500);
  19. this.server.listen(3500);
  20. this.clients = {};
  21. this.server.on('connection',(conn) => {
  22. var key = conn.remoteAddress + ':' + conn.remotePort;
  23. this.clients[key] = conn;
  24. conn.on('close',() => {
  25. delete this.clients[key];
  26. });
  27. });
  28. this.server.on('close',() => {
  29. log.info("Http server went down");
  30. for(var k in this.clients) {
  31. this.clients[k].destroy();
  32. };
  33. });
  34. context.state('serverStart',this);
  35. },
  36. stop(context) {
  37. log.info("Server shutting down");
  38. context.toggleOff('serverStart');
  39. context.emit('serverStop');
  40. this.server.close() // Shutdown clients
  41. for(var k in this.clients) {
  42. this.clients[k].destroy();
  43. };
  44. //this.server.emit('user:close');
  45. }
  46. }
  47. module.exports.bundleActivator = activator;