-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy pathserver.js
33 lines (30 loc) · 1.11 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/* global log */
var cluster = require('cluster');
var redis = require('redis');
const config = require('./config.js');
if (cluster.isMaster && config.multiprocess.enabled) {
var numCPUs = config.multiproccess.processes;
console.log(`Starting ${numCPUs} workers`);
console.log('========================');
console.log('Janus VR Presence Server (clustered)');
console.log('========================');
console.log('See config.js for configuration');
console.log('Startup date/time: ' + Date());
var redisClient = redis.createClient(config.redis);
redisClient.del('userlist:multi');
redisClient.del('partylist:multi');
for (var i = 0; i < numCPUs; i++) {
var child = cluster.fork();
child.on('exit', () => {
redisClient.hdel('userlist', child.process.pid);
redisClient.hdel('partylist', child.process.pid);
});
}
Object.keys(cluster.workers).forEach(function(id) {
console.log('SPAWNED', cluster.workers[id].process.pid);
});
}
else {
var Server = require("./src/Server.js");
(new Server(config)).start();
}