casino-server
Version:
An multi-rule scalable online poker game server powered by redis, node.js and socket.io
58 lines (42 loc) • 1.38 kB
JavaScript
#!/usr/bin/env node
var path = require('path'),
redis = require('redis'),
read = require('read'),
fs = require('fs'),
conf = require('../conf/casino.conf.js');
var argv = require('minimist')(process.argv.slice(2));
console.log('event-logger started, press enter to quit\n');
if(argv.r) {
var words = argv.r.split(':');
if(words[0]) conf.redis.host = words[0];
if(words[1]) conf.redis.port = parseInt(words[1]);
}
var out = process.stdout;
if(argv.o) {
out = fs.createWriteStream(argv.o, { flags:'a' });
}
var sub = redis.createClient(conf.redis.port, conf.redis.host, {});
sub.on('error', function(err){
console.error('redis error (sub): ', err.stack);
out.write(now() + ', redis error: ' + err);
});
sub.on('subscribe', function(channel, count){
out.write(now() + ', subscribe channel: ' + channel + '\n');
});
function now() {
var d = new Date();
return d.getTime() + ', ' +
d.getFullYear() + '/' + d.getMonth() + '/' + d.getDate() + ' ' +
d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds() + '.' + d.getMilliseconds();
}
sub.on('message', function(channel, message){
var str = now() + ', ' + message;
out.write(str + '\n');
});
sub.subscribe('server:log');
sub.subscribe('user:log');
read({ prompt: '' }, function(err, input){
if(out !== process.stdout) out.end();
process.exit(0);
console.log( 'event-logger stopped.\n' );
});