Mac下安装pomelo服务端手记

  1. 用Homebrew安装node.js。如果你的Mac上尚未安装Homebrew的话,出门右拐请度娘之,或者搜索本站。

    # brew install node

  2. 安装pomelo

    # npm install pomelo -g

  3. 安装完毕。接下去就是怎么玩pomelo了。
    以下摘录自官方wiki:
    https://github.com/NetEase/pomelo/wiki/Quick-start-guide
    对了,唠一句,看quick-start,最好直接看英文版,因为洋大人始终是第一位的,即便pomelo的作者是网易。有了新的更改,第一修改的肯定是英文版,然后中文版很可能就忘记改了。

  • 创建第一个项目,没啥好说的

    $ cd /var/www/
    $ pomelo init helloWorld
    $ cd helloWorld/
    $ sh npm-install.sh 

    其中的npm-install.sh有必要说说,它的内容如下:

    cd ./game-server && npm install -d
    echo '============   game-server npm installed ============'
    cd ..
    cd ./web-server && npm install -d
    echo '============   web-server npm installed ============'

    简单地令人发指有木有!它就是调用npm来安装game-server和web-server。
    你进到game-server和web-server目录下,可以看到分别有一个package.json文件。这货是给npm用的,
    npm查看其中的内容,来确定需要安装哪些依赖模块。game-server依赖pomelo,而web-server依赖express。

  • 然后项目的目录结构看起来长这个吊样:

  • 然后这些目录的说明如下:懒得翻译了

    Your new application is split in to 2 main directories called game-server and web-server.

    Directory More Info
    /game-server Contains all server side code related to the game dynamics & components.
    /web-server Contains a web server based on expressjs for serving client-side code & web content.
    /game-server/config Contains configuration files to set up & tweak your server-side environment.
    /logs Contains all the application logs which prove essential in debugging your application.
    /shared Can be used to share javascript files between the client & server (if applicable).


  • 运行项目

    新生成的项目中包含game-server和web-server,前者是必须的。

    game-server用如下命令启动:

    pomelo start [development | production] [--daemon]

    其中development和production参数一看便知,产品环境下必须用production,应该会提升效率之类。而–daemon参数,则表明让game-server以后台模式运行,如果不加,那就是前台模式了。用–daemon模式时,必须给node.js安装forever模块,安装方法如下:

    # npm install forever -g

    web-server启动方式如下:

    # cd web-server && node app

    即你需要cd到web-server目录下,执行node app
    你也可以指定环境来启动web-server:

    # node app [env=development | env=production]

    关于web-server的说明:如果你的游戏是页游,那必须有web-server,因为你要用浏览器进行访问。
    如果是手游,那用不着web-server,你的客户端可以用cocos2d-x开发,客户端sdk用libpomelo和你的服务器进行交互。

    我们这里新建成的测试项目,是用浏览器访问的,所以web-server也要启动。

  • 用支持websocket的浏览器访问http://localhost:3001看效果
  • 查询服务器状态

    # pomelo list

    结果看起来如图:

    每个字段的解释,懒得翻译了:

    • serverId: the id of server which is the same as configuration
    • serverType: the type of server which is the same as configuration
    • pid: the pid of process corresponding to server
    • headUsed: the used heap size of server(Unit: Megabytes)
    • uptime: the duration since this server started(Unit: Minute)
  • 关闭项目
    可以用pomelo stop或者pomelo kill。显然推荐用前者,后者是暴力强杀,没有业务层面上的关闭逻辑,会置所有用户于不顾,不应该在production环境中使用。
    还可以指定server id方式关闭制定的服务器:pomelo stop id

  • 增加服务器
    pomelo add host=[host] port=[port] id=[id] serverType=[serverType]
    目前仅支持增加后端服务器

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据