index.js 1.3 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. context.emit('req:'+req.url,[req,res]) //??
  7. .done(([req,res],evt) => {
  8. // Array of results
  9. if(res.statusCode == 404 || evt.count == 0) {
  10. res.writeHead(404,"Not found");
  11. res.end("Not found");
  12. }
  13. });
  14. // Setup stuff here to routing
  15. });
  16. //
  17. log.info("Server started at: " + 3500);
  18. this.server.listen(3500);
  19. this.clients = {};
  20. this.server.on('connection',(conn) => {
  21. var key = conn.remoteAddress + ':' + conn.remotePort;
  22. this.clients[key] = conn;
  23. conn.on('close',() => {
  24. delete this.clients[key];
  25. });
  26. });
  27. this.server.on('close',() => {
  28. log.info("Http server went down");
  29. for(var k in this.clients) {
  30. this.clients[k].destroy();
  31. };
  32. });
  33. context.toggleOn('serverStart',this);
  34. },
  35. stop(context) {
  36. log.info("Server shutting down");
  37. context.toggleOff('serverStart');
  38. context.emit('serverStop');
  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;