チャット ルーム タイマーのソリューション (nodeJS + socket.io + redis) を選択するのを手伝ってください。
複数のルームが作成され、すべてのルームには 1 つのホスト、つまりそのルームの管理者がいて、すべてのルームには 500 人のメンバーがいます。't' の時点で 'n' 個の部屋が存在する可能性があります。ルームは作成から 1 時間後に破棄されます。
ノードサーバー => redis からのルームのメンバー関連データを処理し、一定間隔ですべてのルームにブロードキャストします。この間隔 (つまり、いつブロードキャストするか) は、配列によって決定されtimerArrayForRoom1
ます。この配列は、データをブロードキャストする時間を秒単位で保持します。この配列は部屋ごとに異なります。
さて、2つのアプローチ -
nodeJS で setInterval() を使用して、一定の時間間隔の後にブロードキャスト メソッドを呼び出すようにします。すべての部屋には個別の間隔オブジェクトがあります。
部屋のホストに渡し
timerArrayForRoom1
、タイマー配列に従って数秒後にホストにイベントを発生させます。つまり、クライアント側で setinterval() を使用します。ノードサーバーはそのイベントに対してアクションを実行します。
最初のアプローチは HOST に依存しませんが、NodeJS で setInterval() を使用する必要があります。
サーバーが 500 のメンバーを含む 1000 のルームをサポートできるようにするには、どれを実装するのがよいでしょうか?
どちらがより信頼できますか? (私が読んだように、 setInterval() は関数を呼び出す時間を保証しません)
または他のアプローチ?
ホスト/管理者は異なるデバイスで、すべての部屋に正確に 1 つあるため、2 番目のアプローチはサーバーの負荷をある程度分散させます。