我有一个IRC聊天机器人,我使用Node.js + JavaScript为TwitchTV上的广播公司开发。我从我的家用电脑上运行它,我知道如果它发送太多消息或泛滥,IRC将全局禁止IP地址。
我想打开其他广播公司的聊天机器人,但我担心如果不同的机器人我会被全球禁止(我设置它以便广播公司可以为他们的机器人创建一个新帐户,因此名称适合于他们的频道)从一个全球IP发送消息。
我可以使用哪些技术,每个广播公司都会从机器人那里获得他们的消息而不会被全球禁止?
以下是一个机器人的示例,该机器人可以同时在多个频道中发送消息而不会被禁止:
我已经问过创作者他们是否可以给我一些提示,但他们几乎都说没有。
答案 0 :(得分:1)
克隆 大多数网络限制来自单个IP的并发连接数量(有时,尤其是IPv6甚至整个子网)。对于每个网络,此限制是不同的,以及当此限制超过时如何处理。有些网络会创建一个g-line(全局网络禁止你的IP),其他网络只会丢弃任何新连接。
频道限制
您可以同时使用多少个频道。此限制是每个连接,因此添加其他连接会使您需要克隆的最大通道倍增。
速率限制 每个连接仅允许在给定时间内将一定量的数据发送到服务器。这可以很容易地从5个命令/秒到复杂,其中不同的命令为阈值添加不同的数量。
<强>克隆强>
最好的方法是获得一个例外,一个信任。如何获得一个或者如果你能得到一个取决于网络(政策)。
频道限制
网络中的某些服务器可能允许更多的信道进入。某些网络可以允许某些用户获得更高的限制。再次询问您的IRCop或使用克隆。
限价
询问您的IRCop或使用克隆。实施队列以避免与Excess Flood
断开连接。
您不应该为每个频道使用单个连接。虽然这为您提供了为每个频道选择不同名称的好处,但这被视为大多数网络上的资源浪费。
更好地使用中性名称并将其用于多个渠道。点击频道上限后,使用克隆。
为了避免被excess flood
踢出来实施一个队列来保留线路(你身边的速率限制)。
切勿连接超过允许的并发连接数量到网络。
这包括“Ghosts”,最近被删除但仍然“在服务器上”的连接。
(防止g线将限制除以2或等待3分钟(或更长时间)再重新连接)
看了看抽搐后,看起来这个抽搐不使用IRC网络,而是使用了几个IRC服务器。这使它更简单,更复杂: