index.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. },
  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;