我和我的初创应用程序公司正在开发一款基于回合制的多人 iPhone 应用程序。可以说我们谁都没有任何数据库或服务器知识。虽然,我们愿意学习。
游戏流程将类似于:WordFeud、WordsWithFriends、Rumble 等游戏。
让我从网络上的大量搜索让我们开始:
我们决定使用CouchDB作为存储有关用户、游戏会话和其他内容的信息的工具。CouchDB 是一个开源的 noSQL 数据库系统。原因是我们被教导,它应该支持很多不同意的用户。此外,它可以扩展——我们当然希望做大。
我们的 CouchDB 托管在IrisCouch上。IrisCouch 是为运行 CouchDb 而设计的“云端”托管服务。
因此,我们已经启动并运行了一个 CouchDB 服务器,并且我们知道如何从服务器查询数据的基础知识。
我们现在最大的困惑是我们应该如何设置系统以根据最佳实践工作。现在,我们能够接收数据并将数据提交到服务器。
我们的游戏应该有 Facebook 集成,以便用户可以通过我们的应用程序或通过 Facebook 注册。之后,他们可以与随机匹配的对手一起玩,或与朋友一起玩。比赛开始后,一名球员会收到一组要问的问题,在他回答后,应通过推送通知通知另一名球员轮到他们了。几回合后游戏结束。
在这一点上,我们认为这可能是应用程序流程的最佳解决方案:
- 一个用户连接到另一个用户 -> 一个游戏会话作为一个名为“游戏”的数据库中的文档打开。
- 新创建的文档包含玩家姓名、问题、答案等
- 一个名为“whos_turn”的字段决定了两个玩家中的哪一个轮到它。
- 游戏结束后,会话被删除。
同样,正如您所看到的,我们对如何真正做到这一点一无所知,但这是一般的想法。
所以,我的问题如下:
是直接从 iPhone 应用程序查询数据,还是通过 Web 服务查询数据最好?
设置数据库以最好地管理应用程序流的最佳方式是什么?
任何可能使我们更接近的信息将不胜感激:)
先谢谢了!
奥拉夫·冈德森
编辑#1:我们的 Objective-C 程序员设法使用 CouchDb 连接两个 iPhone 设备。iPhone 应用程序包含一个表视图,该表视图与数据库有并发连接,因此当有人 POST 到数据库时,它会显示在所有其他已连接手机的表视图上。看哪:一个严重无效的聊天系统。