pomelo代码分析系列1————介绍

前面学firefly的过程让我学到了很多知识,但是简单的掌握一个小server完全不够用,所以决定再吃几个。神马erlang,golang,mina,c++,node.js,都尽量了解了解。先学开源的,那么就Pomelo吧!


pomelo,柚子,是网易(NetEasy)的一个基于Node.js的开源GameServer框架。

我前面介绍过firefly,初步看pomelo的时候,第一感觉就是pomelo的代码质量明显要高firefly一个档次。

具体我还没有深入了解。老规矩,想到哪里写到哪里。


老家在这里:http://pomelo.netease.com/

github在这里:https://github.com/netease/pomelo

和firefly一样,这个项目也自带一个游戏,不过是基于HTML5的页游,在这里:https://github.com/NetEase/lordofpomelo


在它的介绍里面列出了很多客户端的支持,赞一个!


这个介绍视频(http://www.infoq.com/cn/presentations/Game-Server-node)讲的不错,那个哥们讲的挺好,看一遍有助于快速了解。



OK,到这,假设大家已经逛了一圈回来了。对pomelo是个啥玩意也有大致了解了。



下面轮到代码了。

先安装Node.js;这里省略了。。。。


然后 git clone 那个pomelo,这个是Node.js的代码,安装: $sudo npm install -g;


俺node刚入门,看的是这篇快速入门:

http://www.nodebeginner.org/index-zh-cn.html (中文版,全)

英文版的是不全的,当然网上有PDF下载,大家自己找吧。


api必须是要过一遍的,但也只需浏览即可,反正俺看一遍最多只能够知道大体有啥玩意。用到再查。

http://nodejs.org/api/index.html


OK,到这里,假设大家和我一样Node.js入门了。(shame it)

那么我们回头看上面安装命令: npm,这个是node的包管理工具,类似linux的apt,mac的port,brew。python的easy-install;具体命令和用法过一遍,用的时候再说。


OK,pomelo也安装好了,而且我们在npm安装的时候使用的是-g;global 选项,说明安装到系统目录。那么系统会自动安装pomelo这个可执行程序。


chenee[183]:~/myCode/NodeJS/helloworld/web-server$ file `which pomelo`
/usr/local/bin/pomelo: symbolic link to `../lib/node_modules/pomelo/bin/pomelo‘
chenee[183]:~/myCode/NodeJS/helloworld/web-server$ f /usr/local/lib/node_modules/pomelo/bin/pomelo 
/usr/local/lib/node_modules/pomelo/bin/pomelo: a node script, ASCII text executable
chenee[183]:~/myCode/NodeJS/helloworld/web-server$ 

如上可见,其实pomelo这个可执行文件就是一个node.js的脚本。有兴趣的可以vi看看。


其实下面大家可以git clone 那个lordofpoemlo的HTML5游戏玩玩,这个后面肯定要仔细学习的,所以我们这里不提了。


我们直接来看pomelo的最简单的demo。

如下:

¥pomelo init helloworld

系统会自动的在当前目录生成一个helloworld文件夹,里面是一个非常简单的pomelo工程,这个工程包括2个模块,一个是game-server,一个是web-server;

平行目录有个非常简单的脚本:

chenee[183]:/tmp/helloworld$ ls
game-server  npm-install.bat  npm-install.sh  shared  web-server
chenee[183]:/tmp/helloworld$ cat 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 ============‘
chenee[183]:/tmp/helloworld$ 

我们执行这个脚本,生成这个工程: $sudo sh npm-install.sh (我linux上要sudo,但是mac上好像又不需要,没有仔细研究,先放着)


OK,生成成功的话,控制台会有下面的输出。

└── connect@1.8.7 (formidable@1.0.14)
npm info ok 
============   web-server npm installed ============


OK,现在我们来看这个2个模块:

game-server:这个其实就是pomelo的游戏服务器,启动命令是在这个目录下面:$pomelo start 会有打印输出提示启动了几个服务,具体我还没有看。

web-server:这个其实和pomelo关系不大,就是调用Express这个Node.js的web框架来写一个非常简单的网页server。启动方法:$node app.js


这个时候大家打开console上提示的URL会看到哦一个非常简单的页面,点击页面下面的按钮,会有一个js的alert提示。说明我们的web-server和game-server都运行ok了。


下一章我们来详细看看web-server到底是啥。











pomelo代码分析系列1————介绍

上一篇:在Centos上安装xtrabackup,对Mysql做备份


下一篇:mysql挖掘与探索------第一章(简介)