如何使基于nodeJS的irc客户端重新连接?

我试图做一个基于nodejs的IRC Web客户端(使用https://github.com/martynsmith/node-irc和socket.io),我有一些问题。

当我启动服务器,并连接到它第一次,一切正常,客户端获得“注册”的事件,一切工作之后。

如果我刷新页面,服务器仍然得到初始化事件(与服务器和昵称),但IRC客户端不连接(尝试重新连接4000ms后,但每次它得到一个“连接得到'closures'事件”消息) 。

码:

客户端:

var socket; socket = io.connect('http://localhost:8000'); ... socket.emit('init', { nick: $(".popup #nume").val(), channels: channels }); 

服务器端:

 io = require('socket.io').listen(8000); irc = require('irc'); console.log("Started server.."); io.sockets.on('connection', function(socket) { socket.on('init', function(data) { console.log('io connection with id ' + socket.id); console.log('socket length: ' + sockets.length); var first, i, good, new_message; sockets.push(socket); socket.nickname = data.nick; socket.channels = data.channels; first = 0; console.log('Init from : ' + socket.nickname + ' ' + socket.channels); socket.client = new irc.Client('localhost', socket.nickname, { port: 6667, debug: true, showErrors: true, autoRejoin: true, autoConnect: false, channels: socket.channels, secure: false, retryDelay: 4000, retryCount: 1000 }); socket.client.connect(); socket.client.addListener('registered', function(message) { socket.client.list(); console.log('Registered to irc'); }); 

日志:

 io connection with id oFrdaN8WhQAE4mEh62uI socket length: 1 Init from : test 8 Jun 04:33:50 - SEND: nickserv :ghost test 8 Jun 04:33:50 - SEND: NICK test 8 Jun 04:33:50 - SEND: USER nodebot 8 * :nodeJS IRC client Netrror: Error: write EPIPE 8 Jun 04:33:50 - Connection got "close" event 8 Jun 04:33:50 - Disconnected: reconnecting 8 Jun 04:33:50 - Waiting 4000ms before retrying 

所以,问题是,即使连接到服务器,它也无法连接到IRC服务器(每次得到“Connection got'close'事件”消息)。