2013-04-15 24 views
0

我试图建立一个2客户端和1服务器的Android应用程序。设计如下:2客户端+ 1服务器游戏在Android与PHP中的网络服务器

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

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

  4. 基于服务器的响应,服务器发送了一些成绩给客户2

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

这两个客户端都是Android移动设备。我能够建立一个客户端(JAVA)+服务器(PHP)+ MySQL连接,并且工作正常。 但是现在我对如何在我的应用中与同一台服务器交互实现2个客户端的概念感到困惑。有人能帮我解决这个问题吗?

在此先感谢。

+1

你有什么麻烦?他们都应该打相同的网络服务。如果你需要知道哪一个是哪一个,让他们发送一个唯一的标记与每个消息 - ANDROID_ID将工作正常。 –

+0

php并不理想,但您可能想查找php的套接字库,特别是'select()'http://php.net/manual/en/book.sockets.php – 1337holiday

+0

感谢您的回复。我是PHP的新手,所以我不知道如何将响应重定向到特定的客户端。我能够从这两个客户端访问相同的Web服务,并且还会看到ANDROID_ID。是否有可能向我指出一些示例代码,告诉我客户特定的响应。 – ASingh

回答

0

一些重要的用途是缺少:

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

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

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

但是,如果你仍然想这样做在PHP和没有回答上面的用例:

  • 登录后,开始拉机制:每x秒,客户端向服务器请求,如果有信息对他来说,并根据回应采取适当的行动。
  • 向服务器添加响应表,无论何时您需要告诉客户端,都将客户端ID和响应添加到此表中。
  • 您可能需要一个表登录用户和一个游戏状态表。

客户端1登录并开始拉动

  • 客户端1点回应:什么也不做

客户端2登录并开始拉动

  • 客户端1个响应:发送文本
  • 客户端2响应:什么都不做

客户端1个发送文本

  • 客户端1回应:什么也不做
  • 客户端2响应:结果

客户端2发送文本

  • 客户端1响应:结果
  • 客户端2回应:do什么

还有其他的方法,但再次,在我看来,PHP是不是这里的正确的解决方案。

希望这有助于亚龙