いくつかの重要なユースケースが欠けています:
- 2 つ以上のクライアントが接続されている場合はどうなりますか?
- クライアント 1 はどのようにしてクライアント 2 について知り、どのようにしてクライアント 2 とゲームを開始するのでしょうか?
- クライアントの 1 つが切断された場合はどうなりますか?
通常、これらのユースケースへの回答は、サーバーに状態があることを示しています。少なくとも、ログインしているクライアントの状態とアクティブなゲームの状態を処理する必要があります。
PHP と MySQL で実装できますが、新しい機能を追加するよりも、アーキテクチャに関連する問題を処理することにほとんどの時間を費やしていることに気付くでしょう。より良いフレームワーク、少なくともサーブレットを選択することをお勧めします。
ただし、上記の使用例に答えずに PHP で実行したい場合は、次のようにします。
- ログインしたら、プル メカニズムを開始します。x 秒ごとに、クライアントはサーバーに情報があるかどうかを尋ね、応答に従って適切なアクションを実行します。
- サーバーに応答テーブルを追加します。クライアントに伝えたいことがある場合はいつでも、クライアント ID と応答をこのテーブルに追加します。
- ログインしたユーザー用のテーブルと、ゲームの状態用のテーブルが必要になるでしょう。
クライアント 1 がログインしてプルを開始
クライアント 2 がログインし、プルを開始
- クライアント 1 の応答: テキストを送信
- クライアント 2 の応答: 何もしない
クライアント 1 送信テキスト
- クライアント 1 の応答: 何もしない
- クライアント 2 の応答: 結果
クライアント 2 送信テキスト
- クライアント 1 の応答: 結果
- クライアント 2 の応答: 何もしない
等
他にも方法はありますが、私の意見では PHP は適切なソリューションではありません。
これが役に立てば幸いです、ヤロン