天天看点

网易开源游戏服务器框架 pomelo 0.9 版发布

pomelo 0.9版于2月26日发布,以下是该版本的新特性。

在pomelo 0.9中提供了基于zmq的rpc调用,开发者可以根据需要选择原有的pomelo-rpc或者pomelo-rpc-zeromq。基于zeromq和原有的pomelo-rpc的性能对比测试结果可以参考:

具体使用方法:

安装zeromq

在app.js中进行配置,具体配置如下所示:

根据网友的建议,在pomelo 0.9版本中增加了重启的命令和服务器单独启动的命令;具体命令如下:

pomelo start -t [server type] 启动某类型的服务器,如果需要分开启动不同类型服务器时候使用,首先必须启动master服务器,例如:

pomelo start -i [server id] 启动具体某个服务器,同上首先需要启动master,master服务器无需提供具体id, 例如:

pomelo restart 重启除了master以为的其它服务器,可能会出现重启失败的情况。

pomelo restart -t [server type] 重启某类型的服务器,不包括master服务器

pomelo restart -i [server id] 重启具体某个服务器,不包括master服务器

``

app.set('proxyconfig', {

timeout: 1000 * 20

});

./game-server/app/util/blacklist.js

... ...

var self = this;

self.blacklist = ['192.168.100.1', '192.168.100.2'];

module.exports.blacklistfun = function(cb) {

cb(null, self.blacklist);

};

./game-server/app.js

var blacklist = require('./app/util/blacklist');

app.configure('production|development', function() {

app.set('connectorconfig', {

blacklistfun: blacklist.blacklistfun

}

blacklist 192.168.100.1

blacklist (([01]?d?d|2[0-4]d|25[0-5]).){3}([01]?d?d|2[0-4]d|25[0-5])

var store = require('./store');

app.set('channelconfig', {

store : store,

prefix : 'pomelo'

//store.js

var redis = require('redis');

var storemanager = function() {

this.redis = redis.createclient(6379, '127.0.0.1', {});

module.exports = new storemanager();

storemanager.prototype.add = function(key, value, cb) {

this.redis.sadd(key, value, function(err) {

storemanager.prototype.remove = function(key, value, cb) {

this.redis.srem(key, value, function(err) {

cb(err);

storemanager.prototype.load = function(key, cb) {

this.redis.smembers(key, function(err, list) {

cb(err, list);

storemanager.prototype.removeall = function(key, cb) {

this.redis.del(key, function(err) {

{

"name": "boot",

"description": "main app boot component",

"dependencies": {

},

"scripts": ["index.js"]

var emitter = require('emitter');

window.eventemitter = emitter;

var protocol = require('pomelo-protocol');

window.protocol = protocol;

var protobuf = require('pomelo-decodeio-protobuf');

window.decodeio_protobuf = protobuf;

var pomelo = require('pomelo-jsclient-websocket');

window.pomelo = pomelo;

var jquery = require('jquery');

window.$ = jquery;

app.use(protobuf, {

protobuf: {

//设置客户端重连

pomelo.init({

host: 127.0.0.1,

port: 3050,

reconnect: true

}, function() {

//设置客户端重连最大次数

reconnect: true,

maxreconnectattempts: 20

继续阅读