我试图建立一个Android应用程序与2个客户端和1个服务器。设计如下:
- 客户端1登录。
-
客户端2登录。
-
Client 1输入一些需要通过MySQL数据库验证的文本
- 根据服务器的响应,发送一些结果给Client 2。
这个循环往复,直到游戏结束。
两个客户端都是android移动设备。我能够建立一个1客户端(Java) +服务器(PHP) + MySQL连接,它工作得很好。但是现在我对如何在我的应用程序中实现与同一服务器交互的2个客户端的概念感到困惑。
缺少一些重要的用例:
- 如果连接了两个以上的客户端会发生什么? 客户1是如何知道客户2的,他是如何和客户2开始游戏的?
- 如果其中一个客户端断开连接会发生什么?
通常这些用例的答案表明你的服务器有状态,至少你需要处理登录客户端的状态和活动游戏的状态。
你可以用PHP和MySQL实现它,但你可能会发现自己花了大部分时间来处理与架构相关的问题,而不是添加新功能。我建议选择更好的框架,至少是servlet。
但是,如果你仍然想在PHP中做,而不回答上面的用例:
- 一旦登录,启动拉取机制:每x秒客户端询问服务器是否有信息给他,并根据响应执行相应的操作。
- 添加一个响应表到服务器,当你有事情要告诉客户端时,添加客户端ID和响应到这个表。 你可能需要一个登录用户表和一个游戏状态表。
客户端1登录并开始拉拔
- 客户端1响应:do nothing
客户端2登录并开始拉拔
- 客户端1响应:发送文本
- 客户端2响应:do nothing
客户端1发送文本
- 客户端1响应:do nothing
- 客户端2响应:result
客户端2发送文本
- 客户端1响应:result
- 客户端2响应:do nothing
等。
还有其他的方法,但是,在我看来PHP不是正确的解决方案。
希望这对你有帮助,Yaron