V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
blackgun
V2EX  ›  Node.js

社交游戏,使用node.js开发服务器端,求指点。

  •  
  •   blackgun · 2012-12-30 13:28:10 +08:00 · 4671 次点击
    这是一个创建于 4338 天前的主题,其中的信息可能已经有所发展或是发生改变。
    以前只用过LAMP, 被Node.js和Pomelo所吸引,但一无所知。
    异步交互和实时同步各半。客户端为AS3

    是否要自己做session管理,用什么样的数据库,Redis,MangoDB哪个更好些,开发效率如何,心里没底。

    请过来人指教,谢谢啦
    7 条回复    1970-01-01 08:00:00 +08:00
    pepsin
        1
    pepsin  
       2012-12-30 13:46:28 +08:00
    http://zef.me/4235/pick-your-battles

    先看看这文章再做决定
    blackgun
        2
    blackgun  
    OP
       2012-12-30 14:49:00 +08:00
    @pepsin,此文很好,很有警示作用。我最近被Cocos2D-x整得半残,iOS上勉强挺过来,NDK+JNI下挂了。越发感觉AS3好啊,成熟的基础上还不断往先进靠拢。

    数据库还是继续用MySQL好了,个别功能如chat小范围尝试Node.js,出错损失不大。
    再请问RoR算成熟技术吗?在RoR和PHP之间选哪个好些?RoR没用过,PHP也很粗浅,所以学习成本差别不大,还请指点。
    pepsin
        3
    pepsin  
       2012-12-30 19:14:18 +08:00
    @blackgun RoR成熟得快焦掉了,我就是RoR程序员,几乎什么错误随便搜搜StackOverFlow上都有答案。官方的Guide也很友好。

    但是有一点很重要,你Ruby得懂,因为很多Gem也就是依赖包文档注释很简要,一般出了查不到的问题都是习惯直接看源码,你如果是不懂Ruby那麻烦就很大。

    还是拿自己最熟的技术用吧,觉得好的技术拿来做点demo或者内部用的一些工具,确定做烂了再拿来用在生产环境吧。
    Numbcoder
        4
    Numbcoder  
       2012-12-30 20:30:48 +08:00
    感谢关注 Pomelo
    Pomelo 就是为游戏开发而创造。有任何问题可以去 github 提 issue

    Rails 最适合最传统 Web 应用。做游戏服务端的话,在并发性能上可能会些有问题。

    数据库的话,用你最熟悉的把。
    blackgun
        5
    blackgun  
    OP
       2012-12-31 02:05:06 +08:00
    感谢回复。

    除了技术本身需要成熟之外,我感觉社区是最重要的,在开发过程中哪有没有问题的时候,用什么技术都会碰到各种问题,关键是社区能否给予足够的支持,我以前用过一些个人开发的引擎,虽然不成熟,但是社区和作者支持很好,开发就很舒服,反之一些大公司的框架,社区支持很差,开发就痛苦。

    另外我目前最大的问题是开发资源非常紧张,前后端都是我一个人开发,因此对开发效率的要求就很高,这包括:周边基础库的数量和质量,是否有成熟框架,代码写作量,调试是否给力。

    如果只是一般的站点系统的话,用LAMP基本符合上述要求,对于我当先的异步社交游戏来说,实时性的要求不是很高(类似于棋牌那种节奏,甚至更慢),后台逻辑和功能都比较简单,PHP完全可以胜任,但是所有场景数据都在数据库,因此本质上最后的压力还是在数据库上。也许这个问题的焦点应该是谈数据库。

    MySQL的挑战:1)扩容,2)并发能力。一台服务器几千人在线是很常见的,而且读写操作是1:1,非用MySQL也不是不能做,但是游戏应用对SQL的使用量很小,基本都在数据分析层面,生产服务层面高速的Key-Value方式是最好的,因此Redis等NoSQL非常符合这种case,因而希望跳出PHP+MySQL的小圈子,不是为了技术而技术,而是感觉有更符合我这种情况的方案。请指教
    blackgun
        6
    blackgun  
    OP
       2012-12-31 05:30:55 +08:00
    @Numbcoder, 有个问题是Pomelo提供了js,iOS,等客户端库,我使用AS3如何跟服务器端通信呢?我如果直接用socket通信的话,自带的功能就没有了,比如session。另外没有看到持久化是如何处理的。
    Numbcoder
        7
    Numbcoder  
       2012-12-31 14:30:22 +08:00
    @blackgun 有个demo 里用到的是 mysql 做持久化的。flash 客户端的话目前是没有,在开发计划中。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2402 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 01:02 · PVG 09:02 · LAX 17:02 · JFK 20:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.