diff --git a/index.js b/index.js index d13c18b..b149ddd 100644 --- a/index.js +++ b/index.js @@ -14,6 +14,8 @@ var keepalive_interval = 60 * 1000; var last_message_hash = ''; var log_level = 'info'; +var internal_ping_prefix = 'INTERNAL_PING.'; + if (config.globals.log_level) { log_level = config.globals.log_level; } @@ -89,6 +91,11 @@ function onHttpIncomingMessage(request, response) { var qs = url.parse(request.url, true).query; logger.info("onHttpIncomingMessage()", {qs: qs}); + // abaikan balikan ping + if (qs.to.match(internal_ping_prefix)) { + return; + } + var destination = qs.to.replace(config.globals.msisdn_suffix, ''); logger.info('Sending message to ' + destination + ': ' + qs.msg); ym.sendPM(destination, qs.msg); @@ -119,6 +126,20 @@ function forwardMessageToEvo(sender, message, ts) { return; } }); + + + // kirim ping 1 detik setelah pesan agar segera diproses + setTimeout(function() { + var pingOpts = { + url: config.globals.evo_url, + qs: { + msg: 'PING.' + message, + msisdn: internal_ping_prefix + msisdn, + smsc: config.globals.smsc, + ts: strftime('%F %T') + } + } + }, 1000); } function createHttpServer() {