Pomelo 是基于 Node.js 的高性能、分布式游戏服务器框架。它包括基础的开发框架和相关的扩展组件(库和工具包),能够帮助你省去游戏开发枯燥中的重复劳动和底层逻辑的开发。Pomelo 不但适用于游戏服务器开发, 也可用于开发高实时 Web 应用,它的分布式架构能够使 Pomelo 比普通的实时 Web 框架扩展性更好。javascript
Pomelo API
GITHUB :Home-in-Chinese
Pomelo Framework
使用 WebStorm IDE 调试 Pomelo 应用程序html
init: 建立一个新项目,该项目中包含建立pomelo应用的基本文件及pomelo应用的简单示例。
start: 启动应用及服务器。
list: 列出当前应用开启的全部服务器的信息,包括服务器Id、服务器类型、pid、堆使用状况、启动时长。
stop: 关闭应用及服务器或者中止指定的服务器。
kill: 强制关闭应用及服务器。
add: 运行时动态添加服务器。
masterha: 当启用masterha高可用的时候,用来启动master服务器的slave节点。
–version:列出当前使用pomelo的版本信息。
–help:列出全部pomelo支持的命令及使用说明。java
1.确保机器能够上网,由于安装过程当中须要下载其依赖的包。
2.确保机器上已经安装Node运行环境。
3.虽然pomelo是用Javascript写成,可是pomelo依赖的库中,有使用了C++语言写的扩展,所以安装pomelo的过程当中会使用到C++编译器。node
注:若是你使用的是Mac OS X系统, 则须要安装Xcode Command Line Tools或者Xcode的完整包以及make工具.git
方法1:github
$ npm install pomelo -g
方法2:web
$ git clone https://github.com/NetEase/pomelo.git $ cd pomelo $ npm install -g
注:安装过程当中如出现错误,多是由于没有获取本机权限,在npm前加sudo,输入密码获取权限后便可正常安装。算法
环境安装完成后,可在命令行中建立pomelo项目,代码:数据库
$ pomelo init ./HelloWorld
新建项目后,安装项目依赖包:express
$npm-install.bat
新项目结构以下:
该目录结构很清楚地展现了游戏项目的先后端分层结构,分别在各个目录下填写相关代码,便可快速开发游戏。
game-server是用pomelo框架搭建的游戏服务器,以文件app.js做为入口,运行游戏的全部逻辑和功能。在接下来的开发中,全部游戏逻辑、功能、配置等都在该目录下进行。
app子目录
这个目录下放置全部的游戏服务器代码的地方,用户在这里实现不一样类型的服务器,添加对应的Handler,Remote等等。
config子目录
game-server下config包括了游戏服务器的全部配置信息。配置信息以JSON文件的格式进行定义,包含有日志、master、server等服务器的配置信息。该目录还能够进行扩展,对数据库配置信息、地图信息和数值表等信息进行定义。总而言之,这里是放着全部游戏服务器相关的配置信息的地方。
logs子目录日志是项目中不可或缺的,能够对项目的运行状况进行很好的备份,也是系统运维的参考数据之一,logs存放了游戏服务器全部的日志信息。
shared存放一些先后端、game-server与web-server共用代码,因为都是javascript代码,那么对于一些工具或者算法代码,就能够先后端共用,极大地提升了代码重用性。
web-server
web-server是用express 3.x框架搭建的web服务器,以文件app.js做为入口,固然开发者能够选择Nginx等其余web服务器。若是游戏的客户端不是web的话,如Android平台的话,这个目录就不是必须的了。固然,在这个例子中,咱们的客户端是web,因此web服务器仍是必须的。
启动game-server服务器:
$ cd game-server
$ pomelo start
启动web-server服务器:
$ cd web-server
$ node app
注:在启动过程当中可能会有端口号冲突致使启动不成功,只需在config里面修改使用的端口号便可
$ pomelo stop
或者
$ pomelo kill
chatofpomelo-websocket是在GITHUB上提供的一个pomelo实时聊天的demo,包含pomelo中比较重要的server服务器管理,demo功能强大、代码量很小,适合对pomelo的入门和原理理解,在项目的下载和安装教程中有较详细的项目功能及代码介绍。
Pomelo做为高性能、分布式游戏服务器开发框架,针对其Network,请求、响应、广播、RPC、session 管理等构成了整个游戏框架,这种流程几乎涵盖了当前流行的全部游戏模式的和玩法的搭建,在学习过程当中,最让我兴奋的是分布式架构带来的实时性和扩展性,让游戏能够在不多的代码量下发挥更大的游戏发展空间。