【问题标题】:How can I mimic an irc server disconnect to test my nodejs irc bot?如何模拟 irc 服务器断开连接来测试我的 nodejs irc 机器人?
【发布时间】:2015-01-27 13:51:36
【问题描述】:

我正在使用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 做一些事情并在端口运行时过滤端口或类似的事情?

【问题讨论】:

    标签: node.js sockets events iptables irc


    【解决方案1】:

    当机器人断开连接时不会触发IRC 事件,它只是关闭客户端和服务器之间的连接。

    您可以设置自己的 IRC 服务器并使用 KLINEGLINE 命令(作为 IRC 管理员)禁止您的机器人离开服务器,这将强制关闭连接并模拟断开连接。

    【讨论】:

    • 嗯,好的。您是否建议进行某种 ping/pong 连接测试,以查看它是否仍然“连接”,或者我该怎么做?
    • 服务器应定期向客户端发送PING 间隔。只需不要回复他们,服务器就会断开您的连接。
    猜你喜欢
    • 1970-01-01
    • 2011-01-22
    • 2011-11-24
    • 1970-01-01
    • 2012-07-28
    • 2011-01-21
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多