客户端 - 服务器Android App的最佳技术

时间:2011-09-29 13:15:41

标签: android multiplayer

我需要为学校制作一个在Android上运行的应用。实际上有两个应用程序,一个客户端和一个服务器。当客户端在Android设备上运行时,Ther server在PC上运行。我想知道什么是最好的技术。我知道RMI和WebServices没有在Android中实现,所以有什么替代方案(除了以传统方式实际与套接字通信)。我没有考虑的一个替代方案是REST,但是我需要能够在另一个客户端做了一些事情后通知客户端,类似于转向基础游戏,其中玩家A通知玩家B他做出了移动。 就像我说的那样,套接字可以解决这个问题,但与RMI和WebServices相比,它们只是低级别,并且只想将它们作为最后的手段使用。

2 个答案:

答案 0 :(得分:2)

保持简单。使用REST并让客户端轮询更新。

此外,如果您需要进行扩展,那么此解决方案实际上相当容易扩展,因为您的服务器不需要维护连接。由于特定服务器和客户端之间没有共享状态(应用程序和客户端之间存在共享服务器),您可以轻松添加更多服务器来处理轮询并将其置于负载均衡器之后

您还可以添加缓存,以便轮询只获得完全相同的响应,而不会导致重新计算响应。然后,当游戏状态发生变化时,您可以让后端游戏状态服务器更新缓存。这样可以让您更频繁地进行轮询,并且仍然具有非常灵活,可扩展的架构。

答案 1 :(得分:2)

对于回合制游戏,您可以查看传统上用于即时消息传递的XMPP(例如Smack)。使用C2DM创建一个用于推送通知的游戏也很有趣。

您还可以查看HTTP流媒体,这实际上是一个无休止的HTTP响应,其中播放器移动进入。

另外,您可以查看更适合实时游戏但仍然适用的二进制消息传递系统,例如RabbitMQ(顺利回合制游戏出了什么问题?)。