我需要为学校制作一个在 Android 上运行的应用程序。实际上有两个应用程序,一个客户端和一个服务器。服务器在 PC 上运行,而客户端在 Android 设备上运行。我想知道对此最好的技术是什么。我知道 RMI 和 WebServices 没有在 Android 中实现,那么有什么替代方案(除了以传统方式与套接字实际通信之外)。我没有考虑的一种替代方案是 REST,但一旦另一个客户端做了某件事,我就需要能够通知客户端,类似于玩家 A 通知玩家 B 他采取了行动的回合制游戏。 就像我说的,套接字可以解决这个问题,但与 RMI 和 WebServices 相比,它的级别有点低,并且只想将它们用作最后的手段。
最佳答案
保持简单。使用 REST 并让客户端轮询更新。
此外,如果您需要扩展,此解决方案实际上相当容易扩展,因为您的服务器不需要维护连接。由于特定服务器和客户端之间没有共享状态(应用程序和客户端之间存在共享服务器),因此您可以轻松添加更多服务器来处理轮询并将它们放在负载均衡器后面.
您还可以添加缓存,以便轮询仅获得完全相同的响应,而不会导致重新计算响应。然后,您可以在游戏状态发生变化时让后端游戏状态服务器更新缓存。这将使您可以更频繁地轮询,并且仍然拥有非常灵活、可扩展的架构。
关于android - 客户端-服务器 Android 应用程序的最佳技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7597881/