From 9de16fff2208736e81d16092baf3d5c9660fd96f Mon Sep 17 00:00:00 2001 From: Astro Date: Tue, 27 Dec 2011 15:51:49 +0100 Subject: [PATCH] backend server.js: more graceful chat reconnect --- server.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/server.js b/server.js index 4f612fe..a3b3a7f 100644 --- a/server.js +++ b/server.js @@ -54,22 +54,28 @@ connectNedap(); var IRC_SERVER = 'irc.hackint.eu'; var IRC_CHAN = '#pentanews'; -var chat = new irc({ server: IRC_SERVER, - encoding: 'utf-8', - nick: '[Ceiling]Katze' - }); function connectChat() { + var chat = new irc({ server: IRC_SERVER, + encoding: 'utf-8', + nick: '[Ceiling]Katze' + }); chat.connect(); chat.addListener('376', function() { + if (!chat) + return; chat.join(IRC_CHAN); }); chat.addListener('366', function(msg) { + if (!chat) + return; if (msg.params[1] === IRC_CHAN) { console.log('Successfully joined ' + IRC_CHAN); pushIrcInfo(); } }); chat.addListener('privmsg', function(msg) { + if (!chat) + return; console.log({PRIVMSG:msg}); var nick = msg.person.nick; var channel = msg.params[0]; @@ -88,8 +94,11 @@ function connectChat() { } }); chat.addListener('disconnected', function() { + if (!chat) + return; + chat = undefined; console.error('Chat disconnected!'); - process.nextTick(connectChat); + window.setTimeout(connectChat, 1000); }); chat.on('error', connectChat); }