【问题标题】:Using a server for a turn game (Android) - how to store data?使用服务器进行回合制游戏(Android) - 如何存储数据?
【发布时间】:2012-12-14 22:57:15
【问题描述】:

我正在为两名玩家在 Android 中编写一个简单的回合游戏。我已经开发了一个离线版本(当两个人交换电话时),现在想创建一个在线版本。

我想要这样做的方式是为我的网站使用 Tomcat 或我自己的 PHP 服务器。我的问题是它是否可能以及如何存储数据?

我认为我唯一需要发送到服务器的是当前分数和代表棋盘的数组。然后我将能够在客户端检索这些信息。我的想法正确吗?

我得说,我对所有这些东西完全陌生。我和使用 Java 编程的朋友交谈,他告诉我应该使用 Tomcat。但是怎么做?它是一个本地服务器,所以它可以工作的唯一方法是两部手机连接到同一个网络或什么?

【问题讨论】:

  • Tomcat 不再是“本地服务器”,就像 PHP 服务器一样;任何一个都可以托管在任何支持它们的地方。

标签: java android tomcat servlets


【解决方案1】:

最简单的方法是在在线服务器上实现一组RESTful 服务。 如果需要,您可以使用 Tomcat,但最便宜的方法是使用 PHP 进行简单的 Web 托管。 创建 REST API,例如 /get/board, /get/move, /update/move, /authenticated 等。

【讨论】:

    【解决方案2】:

    最简单的开始方式可能甚至不需要任何真正的服务,而只是几个 PHP 脚本和一个 MySQL 数据库。

    您将需要一些服务器,例如一个简单的 FTP 服务器,您可以在其中放置一些互联网上可访问的脚本,并托管 (MySQL) 数据库。

    然后,对于保持分数的每个示例,您只需要 2 个脚本:1 个用于保存,1 个用于检索玩家的分数。

    保存分数只需要您调用链接,例如: www.server.com/saveScore.php?playerId=111&score=60 在 PHP 中,您可以使用 $_GET['playerId'] 和 $_GET['score'] 将其取出,然后通过查询将这些值保存到数据库中。

    将分数返回给您的应用程序可以通过调用链接来解决: www.server.com/retrieveScore.php?playerId=111 它将简单地查询您的数据库以获取有关该播放器的信息,然后将其打印为 XML 或 JSON。 然后您的应用程序可以再次解析响应(xml/json)。

    一个好主意是将它从 $_GET 移动到 $_POST(POST 在链接中不可见,但您需要更复杂的代码来通过它传输数据)。

    一旦您开始着手实际构建服务,REST 将是一个不错的选择,以提高可维护性、可扩展性和安全性。

    【讨论】:

    • 非常感谢您的回答。问题是,这是我从编程开始的学期项目,它应该尽可能多地涉及 Java,而很少涉及其他东西。我想将 PHP 和 SQL 的数量缩小到最低限度!我认为不需要数据库,游戏持续几分钟,不需要将数据存储在数据库中,只需要一个数组即可。还是不行?
    • 好吧,即使不使用 PHP,您仍然可以使用 Java 做同样的事情,但是您需要一个支持 Java 的服务器,这通常只是一个更难的设置。关于数据库,它几乎不是真正的“需要”,但如果你要采用最干净的方式,无论如何我都会选择它,而且它真的没有那么多工作,甚至可能更容易。如果长时间维护数据并不重要,只是为了展示概念验证,您还可以查看蓝牙和 NFC 之类的东西,而不是在 2 个设备之间进行通信。
    猜你喜欢
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 2023-03-12
    • 2023-03-30
    • 1970-01-01
    • 2017-05-20
    • 2015-05-22
    • 2010-11-02
    相关资源
    最近更新 更多