2

TwitchTV のブロードキャスター用に Node.js + JavaScript を使用して開発した IRC チャット ボットがあります。私はこれを自宅のコンピューターから実行していますが、送信するメッセージが多すぎたりフラッディングが発生したりすると、IRC が IP アドレスをグローバルに禁止することを知っています。

チャット ボットを他の放送局に公開したいのですが、別のボットを使用するとグローバルに禁止されるのではないかと心配しています (放送局がボットの新しいアカウントを作成できるように設定して、名前がチャンネルに合わせられるようにしました)。単一のグローバル IP からメッセージを送信しています。

グローバルな禁止を受けることなく、各ブロードキャスターがボットからメッセージを取得するために使用できるテクニックにはどのようなものがありますか?

これは、一度に多くのチャネルに参加でき、メッセージを送信し、禁止されないボットの例です。

http://www.twitch.tv/moobot

そのクリエイターにヒントを教えてもらえないかと尋ねましたが、彼らはほとんどノーと言いました。

4

1 に答える 1

1

知っておくべきいくつかの制限があり、超えることができる/超えてはならない:

  • IP/サブネットごとのクローン
    ほとんどのネットワークは、単一の IP からの同時接続の量を制限します (場合によっては、サブネット全体でさえも IPv6 を使用します)。この制限はネットワークごとに異なり、この制限を超えた場合の処理​​方法も異なります。一部のネットワークは g ライン (IP のグローバル ネットワーク禁止) を作成しますが、他のネットワークは新しい接続をドロップするだけです。

  • 接続ごとのチャネル制限
    同時に接続できるチャネルの数には制限があります。この制限は接続ごとであるため、別の接続を追加すると、クローンに必要な最大チャネル数が増加します。

  • 接続ごとのレート制限各接続では、一定時間内に一定量のデータしかサーバーに送信できません。これは、1 秒あたり 5 コマンドから、さまざまなコマンドがさまざまな量をしきい値に追加する複雑なものまで、簡単です。


では、どうすればこの制限を回避できますか?

  • クローン
    最善の方法は、例外、つまり信頼を取得することです。どのように取得できるか、または取得できるかどうかは、ネットワーク (ポリシー) によって異なります。

  • チャネル制限
    ネットワーク内の一部のサーバーでは、より多くのチャネルを許可する場合があります。一部のネットワークでは、特定のユーザーがより高い制限を取得できるようにする場合があります。もう一度IRCopに尋ねるか、クローンを使用してください。

  • レート制限
    IRCop に問い合わせるか、クローンを使用してください。の切断を避けるためにキューを実装しますExcess Flood

要約する:

チャネルごとに 1 つの接続を使用しないでください。これにより、チャネルごとに異なる名前を選択できるという利点が得られますが、これはほとんどのネットワークでリソースの浪費と見なされます。
中立的な名前を使用し、複数のチャネルに使用することをお勧めします。チャンネルの上限に達したら、クローンを使用します。

excess flood行を抑えるためのキューを実装するためにキックされるのを避けるために(あなたの側のレート制限)。

許可されている同時接続数を超えてネットワークに接続しないでください。
これには、最近ドロップされたが「サーバー上」にある接続である「ゴースト」が含まれます。(g ラインを防ぐには、制限を 2 で割るか、再接続する前に 3 分 (またはそれ以上) 待ちます)

編集

twitch を調べてみると、その twitch は IRC ネットワークを使用しておらず、代わりに複数の IRC サーバーを使用しているようです。これにより、やや単純かつ複雑になります。

  • 適切な DNS 名を検索し、可能であれば既存の接続 (同じ IP を持つ) を使用する必要があります。
  • 単一のユーザー名を使用します。
于 2013-03-30T15:22:49.207 に答える