0

2 つのクライアントと 1 つのサーバーで Android アプリを構築しようとしています。設計は次のとおりです。

  1. クライアント 1 のログイン。
  2. クライアント 2 のログイン。

  3. クライアント 1 は、MySQL db を介してサーバーによって検証される必要があるテキストを入力します。

  4. サーバーの応答に基づいて、サーバーは何らかの結果をクライアント 2 に送信します。

これは、ゲームが終了するまで行ったり来たりします。

どちらのクライアントも Android モバイル デバイスです。1 クライアント (Java) + サーバー (PHP) + MySQL 接続を確立でき、正常に動作しています。しかし今、同じサーバーと対話するアプリで 2 つのクライアントの概念を実装する方法について混乱しています。

4

1 に答える 1

0

いくつかの重要なユースケースが欠けています:

  • 2 つ以上のクライアントが接続されている場合はどうなりますか?
  • クライアント 1 はどのようにしてクライアント 2 について知り、どのようにしてクライアント 2 とゲームを開始するのでしょうか?
  • クライアントの 1 つが切断された場合はどうなりますか?

通常、これらのユースケースへの回答は、サーバーに状態があることを示しています。少なくとも、ログインしているクライアントの状態とアクティブなゲームの状態を処理する必要があります。

PHP と MySQL で実装できますが、新しい機能を追加するよりも、アーキテクチャに関連する問題を処理することにほとんどの時間を費やしていることに気付くでしょう。より良いフレームワーク、少なくともサーブレットを選択することをお勧めします。

ただし、上記の使用例に答えずに PHP で実行したい場合は、次のようにします。

  • ログインしたら、プル メカニズムを開始します。x 秒ごとに、クライアントはサーバーに情報があるかどうかを尋ね、応答に従って適切なアクションを実行します。
  • サーバーに応答テーブルを追加します。クライアントに伝えたいことがある場合はいつでも、クライアント ID と応答をこのテーブルに追加します。
  • ログインしたユーザー用のテーブルと、ゲームの状態用のテーブルが必要になるでしょう。

クライアント 1 がログインしてプルを開始

  • クライアント 1 の応答: 何もしない

クライアント 2 がログインし、プルを開始

  • クライアント 1 の応答: テキストを送信
  • クライアント 2 の応答: 何もしない

クライアント 1 送信テキスト

  • クライアント 1 の応答: 何もしない
  • クライアント 2 の応答: 結果

クライアント 2 送信テキスト

  • クライアント 1 の応答: 結果
  • クライアント 2 の応答: 何もしない

他にも方法はありますが、私の意見では PHP は適切なソリューションではありません。

これが役に立てば幸いです、ヤロン

于 2013-04-15T07:54:56.397 に答える