const http = require('http'); const log = require('hlogger').createLogger('core-http'); var activator = { start(context) { this.server = http.createServer((req,res) => { var lurl = req.url.replace(/^\/|\/$/g,''); // remove all starting "/" or ending "/" // New context.events .channel(context.name, "request",req.method) .propagate(lurl,req,res) .then((e) => { if(e.count == 0 || res.statusCode == 404) { res.writeHead(404,"Not found"); res.end("Not found"); } }); // Different way }); // log.info("Server started at: " + 3500); this.server.listen(3500); this.clients = {}; this.server.on('connection',(conn) => { var key = conn.remoteAddress + ':' + conn.remotePort; this.clients[key] = conn; conn.on('close',() => { delete this.clients[key]; }); }); this.server.on('close',() => { log.info("Http server went down"); for(var k in this.clients) { this.clients[k].destroy(); }; }); }, stop(context) { log.info("Server shutting down"); this.server.close() // Shutdown clients for(var k in this.clients) { this.clients[k].destroy(); }; //this.server.emit('user:close'); } } module.exports.bundleActivator = activator;