0

我正在尝试构建一个带有 2 个客户端和 1 个服务器的 Android 应用程序。设计如下:

  1. 客户 1 登录。
  2. 客户端 2 登录。

  3. 客户端 1 通过 MySQL db 输入一些需要服务器验证的文本。

  4. 根据服务器响应,服务器向客户端 2 发送一些结果。

这种情况来回发生,直到游戏结束。

两个客户端都是安卓移动设备。我能够建立 1 个客户端 (Java) + 服务器 (PHP) + MySQL 连接,并且工作正常。但是现在我对如何在我的应用程序中实现 2 个客户端与同一服务器交互的概念感到困惑。

4

1 回答 1

0

缺少一些重要的用例:

  • 如果连接了两个以上的客户端会怎样?
  • 客户 1 是如何知道客户 2 的,他是如何与他开始游戏的?
  • 如果其中一个客户端断开连接会发生什么?

通常这些用例的答案表明你的服务器有状态,至少你需要处理登录客户端的状态和活动游戏的状态。

您可以使用 PHP 和 MySQL 来实现它,但您可能会发现自己大部分时间都在处理与架构相关的问题,而不是添加新功能。我建议选择更好的框架,至少是 Servlets。

但是,如果您仍然想在 PHP 中执行此操作并且不回答上述用例:

  • 登录后,启动拉取机制:客户端每隔 x 秒询问服务器是否有信息给他,并根据响应执行适当的操作。
  • 将响应表添加到服务器,每当您有事情要告诉客户端时,将客户端 ID 和响应添加到此表。
  • You would probably need a table for logged in users and a table for the states of the games.

Client 1 logged in and start pulling

  • Client 1 response: do nothing

Client 2 logged in and start pulling

  • Client 1 response: send text
  • Client 2 response: do nothing

Client 1 send text

  • Client 1 response: do nothing
  • Client 2 response: result

Client 2 send text

  • Client 1 response: result
  • Client 2 response: do nothing

etc.

There are other ways but again, in my opinion PHP is not the right solution here.

Hope this helps, Yaron

于 2013-04-15T07:54:56.397 回答