32 lines
1 KiB
JavaScript
32 lines
1 KiB
JavaScript
'use strict';
|
|
|
|
// Load the module dependencies
|
|
var config = require('./config'),
|
|
path = require('path'),
|
|
http = require('http'),
|
|
socketio = require('socket.io');
|
|
|
|
// Define the Socket.io configuration method
|
|
module.exports = function (app, db) {
|
|
var server = http.createServer(app);
|
|
var io = socketio({ transports: ['websocket', 'polling'] });
|
|
|
|
if(config.socketPort){
|
|
console.log("creating websocket server on port: "+config.socketPort);
|
|
io = socketio(config.socketPort, { transports: ['websocket', 'polling'] });
|
|
}
|
|
|
|
if(config.disableClusterMode){
|
|
var redis = require('socket.io-redis');
|
|
io.adapter(redis( process.env.REDIS_URL || { host: process.env.REDIS_DB_PORT_6379_TCP_ADDR || '127.0.0.1' , port: process.env.REDIS_DB_PORT_6379_TCP_PORT || 6379 }));
|
|
}
|
|
// Add an event listener to the 'connection' event
|
|
io.on('connection', function (socket) {
|
|
config.getGlobbedFiles('./app/sockets/**.js').forEach(function (socketConfiguration) {
|
|
require(path.resolve(socketConfiguration))(io, socket);
|
|
});
|
|
});
|
|
|
|
return server;
|
|
};
|