1

現在、マルチプレイヤー Connect 4 ゲームを作成しています。プレーヤーが手を動かすと、その動きは Connect 4 ボード上のすべての位置の状態を含むファイルに書き込まれます。

現在、前のループ反復以降の変更をチェックする遅延ループを備えた PHP スクリプトがあり、変更がある場合、PHP スクリプトは更新されたファイルを返し、プレーヤーに送信されます。

この方法は非常に非効率的で面倒です。ゲームの変更を即座に通知するより良い方法はありますか?

また、inotify を使用しようとしましたが、私のサーバーでは動作しないようです。(Mac OS X Server 10.8 なので、おそらくそれが理由です...)

4

2 に答える 2

0

バックグラウンドでのポーリングは、このような変更を取得するために珍しいことではありません。嫌いなことをもっと具体的に言えますか?

より巧妙なものを探している場合は、各プレイヤーがキープアライブ リクエストを「ゲーム セッション」API に対して非同期的に開くことができます。実装は、ファイルの変更を監視し、変更が検出されたときに次のチャンクを送信できます。変更がファイルからのものか DB からのものかは、サーバーの実装次第です。もちろん、クライアント アプリケーションは、リクエストが開いたままになっていることを確認し、閉じた場合は再接続する必要があります。

于 2012-10-11T01:21:18.210 に答える
0

PHPでは難しいので、node.jsを使ってみてはいかがでしょうか?これらの機能が組み込まれています。

于 2012-10-11T07:48:56.310 に答える