From 0d716595af10f9c734a53b1c9f04160111040f85 Mon Sep 17 00:00:00 2001 From: Zsolt Lattmann Date: Wed, 11 Mar 2015 16:25:56 -0500 Subject: [PATCH] #205 socket io set query string; transport type from gme config. --- src/common/storage/client.js | 14 ++++---------- src/common/storage/mongo.js | 18 ------------------ src/common/storage/server.js | 32 ++++---------------------------- src/server/standalone.js | 4 +--- 4 files changed, 9 insertions(+), 59 deletions(-) diff --git a/src/common/storage/client.js b/src/common/storage/client.js index 4a64530ce0..48b02e92be 100644 --- a/src/common/storage/client.js +++ b/src/common/storage/client.js @@ -131,17 +131,11 @@ define([ "util/assert", "util/guid" ], function (ASSERT, GUID) { }; var IOReady = function () { - var socketIoOpts = JSON.parse(JSON.stringify(gmeConfig.socketIO)); // Copy this values. - socketIoOpts.query = "webGMESessionId=" + options.webGMESessionId; //FIXME this will be undefined in some cases + var socketIoOpts = JSON.parse(JSON.stringify(gmeConfig.socketIO)); // Copy these values. + if (options.webGMESessionId) { + socketIoOpts.query = 'webGMESessionId=' + options.webGMESessionId; //FIXME this will be undefined in some cases + } socket = IO.connect(_hostAddress, socketIoOpts); - //socket = IO.connect(_hostAddress,{ - // 'connect timeout': 10, - // 'reconnection delay': 1, - // 'force new connection': true, - // 'reconnect': false, // FIXME: should we set it to true? - // 'query':"webGMESessionId="+options.webGMESessionId, //this option is only used when some user initiated server function connects to the webgme server - // 'transports': ['websocket'] - //}); socket.on('connect', function () { socketConnected = true; diff --git a/src/common/storage/mongo.js b/src/common/storage/mongo.js index 4cf50a1eee..7ddfd6237d 100644 --- a/src/common/storage/mongo.js +++ b/src/common/storage/mongo.js @@ -26,24 +26,6 @@ define(["mongodb", "util/assert", "util/canon"], function (MONGODB, ASSERT, CANO function openDatabase(callback) { //ASSERT(mongo === null && typeof callback === "function"); - - /*mongo = new MONGODB.Db(options.database, new MONGODB.Server(options.host, options.port), { - 'w': 1, - 'auto_reconnect': true, - 'poolSize': 20, - socketOptions: {keepAlive: 1} - }); - - mongo.open(function (err) { - if (err) { - mongo.close(); - mongo = null; - callback(err); - } else { - callback(null); - } - });*/ - MONGODB.MongoClient.connect(gmeConfig.mongo.uri, gmeConfig.mongo.options, function (err, db) { if (!err && db) { mongo = db; diff --git a/src/common/storage/server.js b/src/common/storage/server.js index f939316d47..1f3af3da85 100644 --- a/src/common/storage/server.js +++ b/src/common/storage/server.js @@ -166,40 +166,16 @@ define([ "util/assert","util/guid","util/url","socket.io","worker/serverworkerma } function open(){ - //TODO: this socketIO should probably have the same options as the client. - _socket = IO.listen(options.combined ? options.combined : gmeConfig.server.port,{ - 'transports': [ - 'websocket' - ] + _socket = IO.listen(options.combined ? options.combined : gmeConfig.server.port, { + 'transports': gmeConfig.socketIO.transports }); _socket.use(function(socket, next) { var handshakeData = socket.handshake; //either the html header contains some webgme signed cookie with the sessionID // or the data has a webGMESession member which should also contain the sessionID - currently the same as the cookie - if (options.session === true){ - var sessionID; - /*if(data.webGMESessionId === undefined){ - if(data.query && data.query.webGMESessionId && data.query.webGMESessionId !== 'undefined'){ - sessionID = data.query.webGMESessionId; - } - } - if(sessionID === null || sessionID === undefined){ - if(data.headers.cookie){ - var cookie = URL.parseCookie(data.headers.cookie); - if(cookie[options.cookieID] !== undefined || cookie[options.cookieID] !== null){ - sessionID = require('connect').utils.parseSignedCookie(cookie[options.cookieID],options.secret); - data.query = data.query || {}; - data.query.webGMESessionId = sessionID; - data.webGMESessionId = sessionID; - } - } else { - console.log('DEBUG COOKIE INFO', JSON.stringify(data.headers)); - console.log('DEBUG HANDSHAKE INFO', JSON.stringify(data.query)); - return accept(null,false); - } - }*/ - sessionID = getSessionID(handshakeData); + if (gmeConfig.authentication.enable === true){ + var sessionID = getSessionID(handshakeData); options.sessioncheck(sessionID,function(err,isOk){ if(!err && isOk === true){ return next(); diff --git a/src/server/standalone.js b/src/server/standalone.js index 439bb9bcaa..b06a4cd0f4 100644 --- a/src/server/standalone.js +++ b/src/server/standalone.js @@ -91,8 +91,7 @@ define(['logManager', //creating the proper storage for the standalone server __storageOptions = { combined: __httpServer, - logger: LogManager.create('StandAloneWebGMEServer-socket.io'), - session: false + logger: LogManager.create('StandAloneWebGMEServer-socket.io') }; if (true === gmeConfig.authentication.enable) { //__storageOptions.auth = { @@ -102,7 +101,6 @@ define(['logManager', // database: gmeConfig.mongodatabase, // guest: gmeConfig.guest //}; - __storageOptions.session = true; // FIXME: How does this differ from gmeConfig.authentication.enable? __storageOptions.sessioncheck = __sessionStore.check; __storageOptions.authorization = globalAuthorization; __storageOptions.auth_deleteProject = __gmeAuth.deleteProject;