【问题标题】:Developing online card game for android为安卓开发在线纸牌游戏
【发布时间】:2011-03-04 07:31:26
【问题描述】:

我目前正在使用 Google App Engine 作为我的后端开发一款适用于 Android 的多人纸牌游戏。 我想知道我应该使用哪种协议来与服务器、UDP 或 TCP 通信 android 客户端? 我知道它们之间的“干燥”差异,但我不确定在这种情况下什么适合我。 游戏将包含几个(10 多个)房间,每个房间可以容纳 4-6 名玩家。

【问题讨论】:

  • 如果您使用 App Engine,则必须使用 HTTP(显然是通过 TCP)。

标签: android google-app-engine tcp udp playing-cards


【解决方案1】:

您应该确保 Google App Engine 支持您想要使用的所有功能。有一些方法可以解决这个问题,有些选项在 GAE 上不可用。你提到你想要几个不同的游戏室,我假设你希望它是实时的。 Google App Engine 对线程和套接字服务器等有一些限制。这些限制可能会使这种类型的应用程序难以以有效的方式进行(不使用“轮询”)。

有一些方法可以解决这个问题,例如使用 Google 的 Channel API:http://code.google.com/appengine/docs/java/channel/

API 看起来相当不错,但它将您的托管选项限制为只有 Google App Engine,我想这还不错,您以后可以随时重写应用程序的这一部分。

【讨论】:

    【解决方案2】:

    如果您希望它在大多数情况下都能正常工作,最好将 HTTP 与 JSON 结合使用。您更有可能确定您的用户流量将通过提供商代理等。

    我会远离 UDP 远距离。无法保证 UDP 数据包实际传送到客户端或服务器,您甚至都不知道它们丢失了。 UDP 唯一合理的情况是,如果您正在开发一个所有人都在同一个网络上的游戏。但是,您可能只是将 TCP 全部刮掉,然后使用蓝牙。

    【讨论】:

      【解决方案3】:

      使用 Google App Engine,您只能通过 HTTP/HTTPS 进行通信,不允许使用 UDP/TCP 套接字通信。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-11
        • 2023-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多