2017-09-21 6 views
1

私は2人のユーザーが時計と競合するゲームを構築しています。各プレイヤーは、できるだけ正確に多くの質問に答えるのに60秒を要します。 - Socket.ioを、使用してサーバの無駄なリソース クライアントサイドの時間管理は、サーバサイドの時間管理と一貫性がありますか?

  • ハンドル

    1. 毎秒サーバからクライアントに残り時間を送る:

      私は、計時には2つの潜在的なアプローチを持っていますクライアント側でカウントダウンしますが、サーバーから信号を送信して60秒後にゲームを終了します - 各プレーヤーのカウントダウンが同期されない可能性があります。

    私の質問はこれです:クライアント側のカウントダウンは両方のクライアント間で合理的に一貫していますか?

    クライアント側で実装されている場合、JavaScriptではsetInterval()が使用されます。

  • 答えて

    1

    サーバーの実際の状態は、サーバーの応答状態に応じてクライアントが同期しようとする必要がある間に(サーバーの状態を更新する)サーバーで保持する必要があります。基本的に、ユーザーが遅れを取ると、彼は時間をブロックするのではなく、時間を失います。これにより、値を変更することによってクライアント側の不正行為を防ぐこともできます。

    各ティックでは、クライアントはサーバーからリアルタイムが何であるかを知る必要があります。

    関連する問題