1

私は Web 開発の世界に足を踏み入れたばかりで、接続しているユーザーがオブジェクト (現在は三角形です!) を制御し、画面領域を簡単に移動できるようにする小さなブラウザー ゲームを開発しています。

現在、クライアントの座標位置を MySQL データベースに保存し、AJAX を使用してその位置を毎秒約 30 回更新しています。

他のクライアントの位置も、1 秒あたり約 30 回ポーリングされます。

ただし、私の問題は、これがクライアントに 1 時間の IP ロックアウトを引き起こしているように見えることです。これは、ホスト側で自動的に発生していると思われます。これはおそらく通常のデフォルトの予防措置でしょうか? 1 秒間に 30 回の AJAX ポーリングは特にストレスの多い量ではなかったという印象を受けましたが、前述したように、これは私にとって新しい分野です。極小の DOS 攻撃を作成してしまったのではないかと心配しています。

もしそうなら、この問題の経験のある人が、私が説明した種類のインタラクティブ性を処理するためのより効率的な方法を教えてくれるとありがたい. これはすべて、大学の最終学年プロジェクトのために 6 か月のプロジェクトに向けて 1 人で取り組むことになるため、より良い解決策を学ぶために余分な時間を費やすことができることを嬉しく思います。

4

2 に答える 2

1

あなたがすべきことは、「ハイブリッドポーリング」として知られています。基本的に、33ミリ秒ごとに1回(1秒あたり30回)実行される「無限」ループを実行している、長時間実行されるメソッドサーバー側があります。データが変更された場合、このループはフロント エンドの一部にデータを送信します。メソッドが処理するにはバッファ内のデータが大きくなりすぎると、メソッドは終了します。クライアントが新しいデータが書き込まれたかどうかを確認するためにポーリングしている時間。メソッドが終了した場合、クライアントはメソッドを再起動する必要があります。これはハイブリッド アプローチであり、メソッドが終了する場合を除いて、クライアント ポーリングはクライアント側のデータのみをチェックします。その場合、クライアントはサーバー メソッドを再起動するために再度ポーリングする必要があります。その後、33 ミリ秒ごとに 1 回実行され、データがクライアントにプッシュされます。 .

于 2012-09-21T23:29:58.113 に答える
0

他のアプローチについては、Comet (古いブラウザーと互換性がありますが、可能な限り効率的ではありません)、BOSH、または Web Sockets (理想的ですが、古いブラウザーとは互換性がありません) を調べてください。

于 2012-09-21T23:10:01.363 に答える