k00*_*00k 6 iphone api couchdb mongodb node.js
我正在开发一款基于回合制的iPhone游戏,最终用于Android.我正在使用Appcelerator Titanium来开发它.我的多人游戏设计类似于Words With Friends.用户在准备好后轮流,然后相应地更新对手的游戏板.
我的一个需求是拥有一个消息传递API,使得2个玩家的设备能够在移动后相互更新游戏板的状态.考虑使用JSON执行此操作并在设备上保留JSON对象,该对象包含任何给定时间的所有游戏板块的位置.这是需要在本地设备上更新然后在移动后向对手的设备发送更改的对象.
我以前为移动平台做过API,为此我已经将PHP与MySQL结合使用,并在API服务器和移动设备之间来回发送JSON.适用于低并发用户以及通常非大规模应用程序.这是希望这个会变得庞大;)
所以现在,我开始考虑持久套接字,而不是一般的httpd服务器等,如果我们的新游戏需要或不需要它们.我也认为放弃大型LAMP堆栈可能是明智的,并且为了可扩展性和易于开发,更倾向于使用像Mongo/Couch - > node.js - > iPhone这样的数据流.老实说,这将是我第一次进入非sql db和node.js.
有兴趣听取他人对此的看法和经验,更多的选择/想法,以及我是否正确地思考它,或者只为自己制造麻烦.
首先,Nodejs非常适合编写反向TCP代理到NoSQL数据库.您可以让所有标准命令通过,但使用您自己的魔法改变/扩展其API,例如使MongoDB说HTTP或CouchDB通过套接字说二进制协议.
在选择NoSQL解决方案来存储棋盘游戏和监控玩家移动时,我认为Redis和CouchDB是最佳候选者.
curl "$HOST/dbname/_changes?filter=app/gameboard&feed=continuous&gameid=38934&heartbeat=1000
由于MongoDB没有一种机制来观察变化,因为它们正在发生或正在使用pubsub,我认为它不是一个好的选择,尽管需要付出额外的努力才能让它发挥作用.
总而言之,您可以单独使用CouchDB替换"大LAMP堆栈",单独使用Redis,或者将任何一个放置在节点应用程序之后,将其已经提供的API过滤/扩展为适合您游戏的内容.
祝你好运!
| 归档时间: |
|
| 查看次数: |
1854 次 |
| 最近记录: |