diff --git a/index.js b/index.js index 99d63c8..e73e984 100644 --- a/index.js +++ b/index.js @@ -37,7 +37,7 @@ var logger = new (winston.Logger)({ function xmppConnect() { logger.info('Connecting to XMPP server'); - + xmpp.connect({ jid: config.globals.jid, password: config.globals.password, @@ -50,24 +50,23 @@ function xmppConnect() { function onHttpIncomingMessage(request, response) { var qs = url.parse(request.url, true).query; logger.verbose("onHttpIncomingMessage()", {qs: qs}); - + //logger.info('Sending xmpp message from ' + config.globals.jid + ' to ' + qs.to + ': ' + qs.msg); sendMessage(qs.to, qs.msg); response.end('OK'); } - function createHttpListener() { var httpServer = http.createServer(function(request,response){ - + var qs = url.parse(request.url, true).query; logger.verbose('Incoming message from EVO', {qs: qs}); response.end('OK'); - + sendMessage(qs.to, qs.msg); }); - + httpServer.listen(config.globals.listen_port, function(){ logger.info("HTTP server listening on " + config.globals.listen_port); }) @@ -88,7 +87,7 @@ function reportToEvo(from, message) { ts: strftime('%F %T'), } }; - + logger.verbose("Forwarding message to evo", {request_opts: opts}); request(opts, function(err, response, body) { if (err) { @@ -97,7 +96,6 @@ function reportToEvo(from, message) { return; } }); - } xmpp.on('close', function() { @@ -108,7 +106,7 @@ xmpp.on('close', function() { xmpp.on('online', function(data) { logger.info('XMPP online', {data: data}); logger.info('Connected with JID: ' + data.jid.user); - + setTimeout(function() { warming_up = false; logger.info('BOT selesai warming up, pesan-pesan selanjutnya akan diproses'); @@ -117,22 +115,23 @@ xmpp.on('online', function(data) { xmpp.on('chat', function(from, message) { logger.info('Incoming message via XMPP ', {to: config.globals.jid, from: from, message: message}); - + if (warming_up) { logger.info('BOT masih dalam tahap warming up, abaikan pesan'); var response_message = 'Pesan diabaikan. Silahkan diulang kembali: ' + message; sendMessage(from, response_message); return; } - + var response_message = 'Pesan anda telah diterima dan akan segera diproses: ' + message; sendMessage(from, response_message); - + reportToEvo(from, message); }); xmpp.on('error', function(err) { - logger.warn('XMPP error', {err: err}); + logger.warn('XMPP error, terminating in 3 secs', {err: err}); + setTimeout(process.exit, 3000, 1); }); xmpp.on('subscribe', function(from) {