android - 客户端-服务器 Android 应用程序的最佳技术

标签 android multiplayer

我需要为学校制作一个在 Android 上运行的应用程序。实际上有两个应用程序,一个客户端和一个服务器。服务器在 PC 上运行,而客户端在 Android 设备上运行。我想知道对此最好的技术是什么。我知道 RMI 和 WebServices 没有在 Android 中实现,那么有什么替代方案(除了以传统方式与套接字实际通信之外)。我没有考虑的一种替代方案是 REST,但一旦另一个客户端做了某件事,我就需要能够通知客户端,类似于玩家 A 通知玩家 B 他采取了行动的回合制游戏。 就像我说的,套接字可以解决这个问题,但与 RMI 和 WebServices 相比,它的级别有点低,并且只想将它们用作最后​​的手段。

最佳答案

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

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

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

关于android - 客户端-服务器 Android 应用程序的最佳技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7597881/

相关文章:

android - 我想通过按钮调用电话,但此错误出现在对话中

java - 为什么sqlite autoincrement int 不能为null?

java - 数据包 : Effectively representing different packet types

unity-game-engine - 通过 PUN2 unity 为网络上的玩家同步随机颜色

networking - 如何在多人游戏中同步物理?

JavaScript 和处理浮点确定性

android - 打开软键盘预览布局

Android List<T> 等价物

android - ListView onItemLongClickListener 无法正常工作

networking - 虚幻引擎 4 多人 LAN - 第二个玩家未生成