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