ゲームをリストする「ロビー」システムを維持するオンラインゲームについて、好奇心から少し読んでいます。
各クライアントを現在のゲーム リストの状態とどのように同期させているのでしょうか?
私は「クライアントがゲームリストの更新を要求する」という用語で話していますが、イベント駆動型の用語ではありません (ゲームの状態が変化し、すぐにそれをブロードキャストします <--- スケーラブルではありません!)。
考えられるシナリオ:
サーバーは、オンライン プレーヤーへの接続を 5000 保持しています。
1000 ゲームのリストがあります。
クライアントは、1 秒ごとにゲーム リストの更新を要求します。
ここで、サーバーはすべてのゲーム リストを繰り返し処理し、特定の各ゲームの最終更新時刻を比較する必要があります。その後、プレーヤーの最終更新が古いことがわかった場合は、更新を送信します。
これは、1 秒ごとに (5000 * 1000 = 5,000,000 )の反復があることを意味します。
それを回避する実用的な方法はありますか?
あなたはすでにそれを行っていますか?私とヒントを共有できますか?
キャッシュを持つことを考えていました。あなたの解決策は何ですか?