diff --git a/ee/assist/servers/websocket-cluster.js b/ee/assist/servers/websocket-cluster.js index abbde07fd..8eb26fb4e 100644 --- a/ee/assist/servers/websocket-cluster.js +++ b/ee/assist/servers/websocket-cluster.js @@ -21,7 +21,9 @@ const {createAdapter} = require("@socket.io/redis-adapter"); const {createClient} = require("redis"); const REDIS_URL = (process.env.REDIS_URL || "localhost:6379").replace(/((^\w+:|^)\/\/|^)/, 'redis://'); const pubClient = createClient({url: REDIS_URL}); +pubClient.on("error", (error) => logger.error(`Pub redis client error : ${error}`)); const subClient = pubClient.duplicate(); +subClient.on("error", (error) => logger.error(`Sub redis client error : ${error}`)); logger.info(`Using Redis: ${REDIS_URL}`); const wsRouter = express.Router(); diff --git a/ee/assist/utils/httpHandlers.js b/ee/assist/utils/httpHandlers.js index adcf1f961..f35dfbe8f 100644 --- a/ee/assist/utils/httpHandlers.js +++ b/ee/assist/utils/httpHandlers.js @@ -42,17 +42,6 @@ const respond = function (req, res, data) { } const getParticularSession = async function (roomId, filters, all=false) { - // let connected_sockets = await fetchSockets(roomId, all); - // if (connected_sockets.length === 0) { - // return null; - // } - // let sessInfo; - // for (let item of connected_sockets) { - // if (item.handshake.query.identity === IDENTITIES.session && item.handshake.query.sessionInfo) { - // sessInfo = item.handshake.query.sessionInfo; - // break; - // } - // } let sessInfo = await getSessionFromCache(roomId); if (!sessInfo) { return null; diff --git a/ee/assist/utils/socketHandlers.js b/ee/assist/utils/socketHandlers.js index e1b349b64..a90d0d6af 100644 --- a/ee/assist/utils/socketHandlers.js +++ b/ee/assist/utils/socketHandlers.js @@ -189,6 +189,9 @@ async function onUpdateEvent(socket, ...args) { args[0] = updateSessionData(socket, args[0]) socket.handshake.query.sessionInfo = deepMerge(socket.handshake.query.sessionInfo, args[0]?.data, {tabId: args[0]?.meta?.tabId}); + // update session cache + await addSessionToCache(socket.handshake.query.sessId, socket.handshake.query.sessionInfo); + // Update sessionInfo for all agents in the room const connected_sockets = await fetchSockets(socket.handshake.query.roomId); for (let item of connected_sockets) { diff --git a/ee/assist/utils/wsServer.js b/ee/assist/utils/wsServer.js index 6c9e258ab..19e5dc91f 100644 --- a/ee/assist/utils/wsServer.js +++ b/ee/assist/utils/wsServer.js @@ -15,16 +15,16 @@ if (useRedis) { const {createClient} = require("redis"); const REDIS_URL = (process.env.REDIS_URL || "localhost:6379").replace(/((^\w+:|^)\/\/|^)/, 'redis://'); redisClient = createClient({url: REDIS_URL}); - redisClient.on("error", (error) => logger.error(`Redis error : ${error}`)); + redisClient.on("error", (error) => logger.error(`Redis cache error : ${error}`)); void redisClient.connect(); } const addSessionToCache = async function (sessionID, sessionData) { try { await redisClient.set(`active_sessions:${sessionID}`, JSON.stringify(sessionData), 'EX', 3600); // 60 minutes - console.log(`Session ${sessionID} stored in Redis`); + logger.debug(`Session ${sessionID} stored in Redis`); } catch (error) { - console.log(error); + logger.error(error); } } @@ -32,12 +32,12 @@ const getSessionFromCache = async function (sessionID) { try { const sessionData = await redisClient.get(`active_sessions:${sessionID}`); if (sessionData) { - console.log(`Session ${sessionID} retrieved from Redis`); + logger.debug(`Session ${sessionID} retrieved from Redis`); return JSON.parse(sessionData); } return null; } catch (error) { - console.log(error); + logger.error(error); return null; } } @@ -45,9 +45,9 @@ const getSessionFromCache = async function (sessionID) { const removeSessionFromCache = async function (sessionID) { try { await redisClient.del(`active_sessions:${sessionID}`); - console.log(`Session ${sessionID} removed from Redis`); + logger.debug(`Session ${sessionID} removed from Redis`); } catch (error) { - console.log(error); + logger.error(error); } }