1

我正在开发一款基于 Playing Cards(确切地说是Bridge )的 Android 游戏,该游戏可以同时由四个玩家玩。并且将有一个可通过 Web 访问的服务器,设备将连接到该服务器,服务器将跟踪游戏进度。

我的游戏在图形方面非常基础,无需使用任何游戏引擎即可获得 UI。

虽然我应该为 Android 构建游戏(客户端),但我想开发可以在游戏的未来端口中重复使用的服务器即使它被移植到其他移动平台甚至桌面。

所以我想到的第一个可能的服务器架构候选者是拥有RESTful Web 服务,这样我就可以将服务器与任何客户端一起使用,只要客户端的编程端支持 HTTP 方法。

但后来我意识到,由于在整个游戏会话期间设备和服务器之间会有持久连接,所以有这样一个服务器是否可以,在请求响应后连接将终止(我不确定是不是真的)?

或者我应该使用JavaDatagramSocketDatagramPacket方式来构建服务器吗?(这会确保服务器的可重用性吗?)

还有其他建议或建议吗?

注意:我对 Java 或 Java 网络编程并不陌生,但我对 Android 开发和创建 RESTful 服务都很陌生。

4

2 回答 2

3

在为 Android 编写时,不要计划持久连接。连接经常中断(而且通常是有充分理由的,比如从 GSM 切换到 wifi)。HTTP 是一个很好的、流行的和经过验证的选择(您可以使用一些较低级别的堆栈,并且可以专注于处理有效负载)。

顺便说一句:在这种情况下说“RESTful Web 服务”是没有意义的——你需要的是一个提供数据和接受命令的 HTTP 服务器,而不是一个将你的游戏逻辑构建为一组有状态资源的心理框架。

于 2012-05-29T12:59:46.960 回答
1

我认为您的基于 HTTP 的计划适合这种情况,我认为连接持久性的问题与桥牌等基于慢速回合的游戏无关。

编辑:正如 tdreger 所建议的,几乎所有 Android 文档都建议您计划通过不同的渠道进行例行连接失败和重新建立,因此 html 连接似乎是最具弹性的解决方案。

我认为你让它独立于客户端的想法是正确和重要的——从这个角度来看,HTTP 的想法显然要好得多,因为用其他语言编写客户端应用程序会容易(你可能会想要——Javascript用于 Web 客户端和用于 iOS 应用程序的 Objective-C)。

我也认为 Android 开发会更容易,因为 Android 和 appache 对这些类似 HTTP 的连接有强大的支持。

于 2012-05-29T12:52:10.633 回答