CPU - Dual Code
RAM - 1 GB
I wonder how lord of pomelo demo support 486 online player in MMORpg whereas my game can't . I used flowing conditions for testing server : In my game each player send 300 request per second and when I connected two player to server it gave me that error (as shown in image) whereas I have just two player connected to server-it mean's 600 req/s - communicating with each other and not a mmorpg game like lord of pomelo that has 486 player in just one scene.
I am confused, I am using socket.io in pomelo because websocket worked more bad. Hear are my main codes for pomelo game server:
app.js
var pomelo = require('pomelo');
var dispatcher = require('./app/util/dispatcher');
// route definition for field server
var fieldRoute = function(session, msg, app, cb) {
var fieldServers = app.getServersByType('field');
if(!fieldServers || fieldServers.length === 0) {
cb(new Error('can not find field servers.'));
return;
}
var res = dispatcher.dispatch(session.get('rid'), fieldServers);
cb(null, res.id);
};
/**
Init app for client.
*/
var app = pomelo.createApp();
app.set('name', 'f_s_socketIO');
module.exports = function(app) {
return new Handler(app);
};
var Handler = function(app) {
this.app = app;
};
var handler = Handler.prototype;
var oppnent_user="";
var opponent_guns;
var opponent_fxs;
handler.entry = function(msg, session, next)
{
var self = this;
var rid = msg.rid;
var uid = msg.uid;
var guns = msg.guns;
var fxs = msg.fxs;
var sessionService = this.app.get('sessionService');
//duplicate log in
if( !! sessionService.getByUid(uid) )
{
next(null, {
code: 500,
error: true
});
return;
}
session.bind(uid);
session.set('rid', rid);
session.pushAll();
session.on('closed', onUserLeave.bind(null, self.app));
//put user into channel
// befor we can push message to client first we must creat jchanels
self.app.rpc.field.userRemote.add(session, uid, self.app.get('serverId'), rid, true, function(){
console.log('callback from rpc add to chanel');
next(null, {
code: 200,
error: 'false'
});
});
I made a multiplayer game using pomelo and unity3d. When I tried to test pomelo server with less requests i got this error in pomelo :
http://www.imageupload.co.uk/56hz
Server info :
CPU - Dual Code RAM - 1 GB I wonder how lord of pomelo demo support 486 online player in MMORpg whereas my game can't . I used flowing conditions for testing server : In my game each player send 300 request per second and when I connected two player to server it gave me that error (as shown in image) whereas I have just two player connected to server-it mean's 600 req/s - communicating with each other and not a mmorpg game like lord of pomelo that has 486 player in just one scene.
I am confused, I am using socket.io in pomelo because websocket worked more bad. Hear are my main codes for pomelo game server: app.js var pomelo = require('pomelo'); var dispatcher = require('./app/util/dispatcher');
// route definition for field server var fieldRoute = function(session, msg, app, cb) { var fieldServers = app.getServersByType('field'); if(!fieldServers || fieldServers.length === 0) { cb(new Error('can not find field servers.')); return; } var res = dispatcher.dispatch(session.get('rid'), fieldServers); cb(null, res.id); }; /**
// app configuration app.configure('production|development', 'connector', function(){ app.set('connectorConfig', { connector : pomelo.connectors.sioconnector, //websocket, htmlfile, xhr-polling, jsonp-polling, flashsocket transports : ['websocket'], heartbeats : true, closeTimeout : 60, heartbeatTimeout : 60, heartbeatInterval : 25 }); });
app.configure('production|development', 'gate', function(){ app.set('connectorConfig', { connector : pomelo.connectors.sioconnector, }); });
app.configure('production|development', function() { // route configures app.route('field', fieldRoute); }); // start app app.start();
process.on('uncaughtException', function (err) { console.error(' Caught exception: ' + err.stack); });
connector.js :
module.exports = function(app) { return new Handler(app); };
var Handler = function(app) { this.app = app; };
var handler = Handler.prototype;
var oppnent_user=""; var opponent_guns; var opponent_fxs;
handler.entry = function(msg, session, next) { var self = this; var rid = msg.rid; var uid = msg.uid; var guns = msg.guns; var fxs = msg.fxs; var sessionService = this.app.get('sessionService');
};
var onUserLeave = function(app, session) { if(!session || !session.uid) { return; } //app.rpc.chat.chatRemote.kick(session, session.uid, app.get('serverId'), session.get('rid'), null); };
fieldHandler.js : for pushMessage :
module.exports = function(app) { return new Handler(app); };
var Handler = function(app) { this.app = app; };
var handler = Handler.prototype;
/**
handler.rot = function(msg, session,next) { //console.log(session.get('frontendId')); //var backEndSession = this.app.get('backendSessionService');
/* next(null, { ttt:'game started' }); */
// channel.pushMessage('onChat', param);
// var tsid = channel.getMember(tuid)['sid']; channelService.pushMessageByUids('OnMessage', param, [{ uid: tuid, // sid: tsid }]);
};
and fieldRemote.j for making channels :
module.exports = function(app) { return new userRemote(app); };
var userRemote = function(app) { this.app = app; this.channelService = app.get('channelService'); };
/**