diff --git a/lib/dispatch/query.js b/lib/dispatch/query.js index e08a3607..c1611a34 100644 --- a/lib/dispatch/query.js +++ b/lib/dispatch/query.js @@ -1196,10 +1196,17 @@ exports.stop = { _params[p] = req.params[p]; }); - joola.logger.debug('Stopping query [' + _params.querytoken + ']'); - var index = manager.runningQueries.indexOf(_params.querytoken); + var querytoken = _params.querytoken; + joola.logger.debug('Stopping query [' + querytoken + ']'); + var index = manager.runningQueries.indexOf(querytoken); manager.runningQueries.splice(index, 1); + if (manager.realtimeQueries[querytoken]) { + console.log('found realtime query', querytoken, manager.realtimeQueries[querytoken]); + var sid = res.socket.id; + console.log('socket for query', sid, manager.realtimeQueries[querytoken].sockets[sid]); + delete manager.realtimeQueries[querytoken].sockets[sid]; + } return router.responseSuccess({ok: 1}, req, res); } }; @@ -1275,7 +1282,6 @@ exports.fetch = { } joola.auth.extendToken(req.token, function (err, token) { - console.log('actual fetch'); joola.dispatch.request(token._, 'query:fetch', _params, function (err, result) { clearTimeout(timerID); if (aborted) @@ -1293,8 +1299,11 @@ exports.fetch = { if (callback) return callback(null, result); - else + else { + if (result.query && result.query.realtimeUID) + result.realtime = result.query.realtimeUID; return router.responseSuccess(result, req, res); + } }); timerID = setTimeout(function () { @@ -1337,7 +1346,8 @@ exports.fetch = { manager.realtimeQueries[queryKey] = exist; _params.options.queryKey = queryKey; - var realtimeUID = joola.common.uuid(); + var realtimeUID = queryKey;//joola.common.uuid(); + _params.options.realtimeUID = realtimeUID; manager.runningQueries.push(realtimeUID); var realtime = function () { request(false, function (err, result) {