【问题标题】:Prevent irc bot from getting auto kicked (excess flooding)防止 irc 机器人被自动踢(过度泛滥)
【发布时间】:2014-10-01 02:17:33
【问题描述】:

我有一个机器人,它分析聊天命令并提供一个小型数据库。当我告诉机器人它应该将数据库的内容写入 irc 时,它会因为过度泛滥而被踢。我怎样才能防止这种情况? (我使用的是freenode.net)

PS:这是我的代码:

for (User u : users.values()) {
    ps.println("PRIVMSG " + CHANNEL + " :" + u.toString());
}

ps 是一个写入 Socket.getOutputStream() 的 PrintStream。 CHANNEL 是我的频道的名称。 users.size() 约为 60。

【问题讨论】:

    标签: java irc


    【解决方案1】:

    显然,客户端无法更改服务器阈值,以检测这样做的客户端泛滥和断开连接。否则,防洪的整个想法将毫无意义。

    因此,您必须将输出限制在一个不会触发泛洪踢的水平。在ps.println 调用之间添加一个(可配置的)睡眠,并设置睡眠持续时间,这样你就不会被踢。


    解决方法是使用类似 pastebin 的服务,只需将 URL 和摘要/标题文本在一行中发送到 IRC。无论如何,对于任何超过 3 行的 IRC 粘贴,使用这些服务都是标准程序。各种“pastebin”服务都有 REST API (example),所以这应该是相当简单的方法。

    【讨论】:

    • 也许这是唯一可能的选择,但这会极大地减慢我的代码速度。不过还是谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 2021-06-25
    • 2016-05-13
    • 2011-10-06
    • 2023-03-07
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多