|
|
@ -8,16 +8,14 @@ var cookieParser = require('cookie-parser')(nconf.get('secret'));
|
|
|
|
var winston = require('winston');
|
|
|
|
var winston = require('winston');
|
|
|
|
|
|
|
|
|
|
|
|
var db = require('../database');
|
|
|
|
var db = require('../database');
|
|
|
|
var user = require('../user');
|
|
|
|
|
|
|
|
var logger = require('../logger');
|
|
|
|
var logger = require('../logger');
|
|
|
|
var ratelimit = require('../middleware/ratelimit');
|
|
|
|
var ratelimit = require('../middleware/ratelimit');
|
|
|
|
var cls = require('../middleware/cls');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var io;
|
|
|
|
var Sockets = {};
|
|
|
|
|
|
|
|
|
|
|
|
(function(Sockets) {
|
|
|
|
|
|
|
|
var Namespaces = {};
|
|
|
|
var Namespaces = {};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var io;
|
|
|
|
|
|
|
|
|
|
|
|
Sockets.init = function(server) {
|
|
|
|
Sockets.init = function(server) {
|
|
|
|
requireModules();
|
|
|
|
requireModules();
|
|
|
|
|
|
|
|
|
|
|
@ -32,10 +30,6 @@ var io;
|
|
|
|
|
|
|
|
|
|
|
|
io.on('connection', onConnection);
|
|
|
|
io.on('connection', onConnection);
|
|
|
|
|
|
|
|
|
|
|
|
io.on('disconnect', function(data) {
|
|
|
|
|
|
|
|
onDisconnect(io, data);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
io.listen(server, {
|
|
|
|
io.listen(server, {
|
|
|
|
transports: nconf.get('socket.io:transports')
|
|
|
|
transports: nconf.get('socket.io:transports')
|
|
|
|
});
|
|
|
|
});
|
|
|
@ -48,15 +42,11 @@ var io;
|
|
|
|
|
|
|
|
|
|
|
|
logger.io_one(socket, socket.uid);
|
|
|
|
logger.io_one(socket, socket.uid);
|
|
|
|
|
|
|
|
|
|
|
|
cls.socket(socket, null, 'connection', function () {
|
|
|
|
|
|
|
|
onConnect(socket);
|
|
|
|
onConnect(socket);
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
socket.on('*', function(payload) {
|
|
|
|
socket.on('*', function(payload) {
|
|
|
|
cls.socket(socket, payload, null, function() {
|
|
|
|
|
|
|
|
onMessage(socket, payload);
|
|
|
|
onMessage(socket, payload);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function onConnect(socket) {
|
|
|
|
function onConnect(socket) {
|
|
|
@ -68,10 +58,6 @@ var io;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function onDisconnect(socket) {
|
|
|
|
|
|
|
|
cls.socket(socket, null, 'disconnect', function() {});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function onMessage(socket, payload) {
|
|
|
|
function onMessage(socket, payload) {
|
|
|
|
if (!payload.data.length) {
|
|
|
|
if (!payload.data.length) {
|
|
|
@ -212,7 +198,7 @@ var io;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sockets.reqFromSocket = function(socket, payload, event) {
|
|
|
|
Sockets.reqFromSocket = function(socket) {
|
|
|
|
var headers = socket.request.headers;
|
|
|
|
var headers = socket.request.headers;
|
|
|
|
var host = headers.host;
|
|
|
|
var host = headers.host;
|
|
|
|
var referer = headers.referer || '';
|
|
|
|
var referer = headers.referer || '';
|
|
|
@ -220,15 +206,13 @@ var io;
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
ip: headers['x-forwarded-for'] || socket.ip,
|
|
|
|
ip: headers['x-forwarded-for'] || socket.ip,
|
|
|
|
host: host,
|
|
|
|
host: host,
|
|
|
|
uid: socket.uid,
|
|
|
|
|
|
|
|
protocol: socket.request.connection.encrypted ? 'https' : 'http',
|
|
|
|
protocol: socket.request.connection.encrypted ? 'https' : 'http',
|
|
|
|
secure: !!socket.request.connection.encrypted,
|
|
|
|
secure: !!socket.request.connection.encrypted,
|
|
|
|
url: referer,
|
|
|
|
url: referer,
|
|
|
|
body: {event: event || ((payload || {}).data || [])[0], payload: payload},
|
|
|
|
|
|
|
|
path: referer.substr(referer.indexOf(host) + host.length),
|
|
|
|
path: referer.substr(referer.indexOf(host) + host.length),
|
|
|
|
headers: headers,
|
|
|
|
headers: headers
|
|
|
|
_socket: socket
|
|
|
|
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
})(exports);
|
|
|
|
|
|
|
|
|
|
|
|
module.exports = Sockets;
|