我正在使用net.Socket
模块连接到EFNET并测试我的代码,以便为我的机器人添加重新连接事件。
我可以通过哪些方式模仿机器人断开连接?问题是连续2-3周就断开了 - 我已经添加了事件处理程序,以便了解当它与IRC断开连接时会发生什么:
irc = {
info:{}
, listeners : []
, socket : new net.Socket()
}
irc.socket.on('timeout', function() {
console.log('timeout');
});
irc.socket.on('error', function() {
console.log('error');
});
irc.socket.on('end', function() {
console.log('end??')
setTimeout(function() {
//irc.socket.connect(config.server.port, config.server.addr);
}, 1000 );
});
或者如果有人知道通常与irc机器人有关的事件,我会很感激。
编辑#1:也许我可以使用iptables
执行某些操作并在端口运行时对其进行过滤或沿着这些线路进行过滤?
答案 0 :(得分:2)
当僵尸程序断开连接时,IRC
事件未被触发,它只是关闭客户端和服务器之间的连接。
您可以设置自己的IRC服务器并使用KLINE
或GLINE
命令(作为IRC管理员)禁用服务器上的机器人,这会强制关闭连接并模仿断开连接。