feat(assist): centralized getAvailableRooms
This commit is contained in:
parent
7b154f481f
commit
2d1aa4c952
5 changed files with 42 additions and 33 deletions
|
|
@ -9,7 +9,8 @@ const {
|
|||
extractPayloadFromRequest,
|
||||
sortPaginate,
|
||||
getValidAttributes,
|
||||
uniqueAutocomplete
|
||||
uniqueAutocomplete,
|
||||
getAvailableRooms
|
||||
} = require('../utils/helper');
|
||||
const {
|
||||
IDENTITIES,
|
||||
|
|
@ -35,11 +36,6 @@ const createSocketIOServer = function (server, prefix) {
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
const getAvailableRooms = async function () {
|
||||
return io.sockets.adapter.rooms.keys();
|
||||
}
|
||||
|
||||
const respond = function (res, data) {
|
||||
res.statusCode = 200;
|
||||
res.setHeader('Content-Type', 'application/json');
|
||||
|
|
@ -50,7 +46,7 @@ const socketsList = async function (req, res) {
|
|||
debug && console.log("[WS]looking for all available sessions");
|
||||
let filters = extractPayloadFromRequest(req);
|
||||
let liveSessions = {};
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey, sessionId} = extractPeerId(peerId);
|
||||
if (projectKey !== undefined) {
|
||||
|
|
@ -77,7 +73,7 @@ const socketsListByProject = async function (req, res) {
|
|||
let _sessionId = extractSessionIdFromRequest(req);
|
||||
let filters = extractPayloadFromRequest(req);
|
||||
let liveSessions = {};
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey, sessionId} = extractPeerId(peerId);
|
||||
if (projectKey === _projectKey && (_sessionId === undefined || _sessionId === sessionId)) {
|
||||
|
|
@ -105,7 +101,7 @@ const socketsLive = async function (req, res) {
|
|||
debug && console.log("[WS]looking for all available LIVE sessions");
|
||||
let filters = extractPayloadFromRequest(req);
|
||||
let liveSessions = {};
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey} = extractPeerId(peerId);
|
||||
if (projectKey !== undefined) {
|
||||
|
|
@ -133,7 +129,7 @@ const socketsLiveByProject = async function (req, res) {
|
|||
let _sessionId = extractSessionIdFromRequest(req);
|
||||
let filters = extractPayloadFromRequest(req);
|
||||
let liveSessions = {};
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey, sessionId} = extractPeerId(peerId);
|
||||
if (projectKey === _projectKey && (_sessionId === undefined || _sessionId === sessionId)) {
|
||||
|
|
@ -164,7 +160,7 @@ const autocomplete = async function (req, res) {
|
|||
let filters = extractPayloadFromRequest(req);
|
||||
let results = [];
|
||||
if (filters.query && Object.keys(filters.query).length > 0) {
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey} = extractPeerId(peerId);
|
||||
if (projectKey === _projectKey) {
|
||||
|
|
|
|||
|
|
@ -218,6 +218,9 @@ const uniqueAutocomplete = function (list) {
|
|||
}
|
||||
return _list;
|
||||
}
|
||||
const getAvailableRooms = async function (io) {
|
||||
return io.sockets.adapter.rooms.keys();
|
||||
}
|
||||
module.exports = {
|
||||
transformFilters,
|
||||
extractPeerId,
|
||||
|
|
@ -230,5 +233,6 @@ module.exports = {
|
|||
objectToObjectOfArrays,
|
||||
extractPayloadFromRequest,
|
||||
sortPaginate,
|
||||
uniqueAutocomplete
|
||||
uniqueAutocomplete,
|
||||
getAvailableRooms
|
||||
};
|
||||
|
|
@ -20,7 +20,8 @@ const {
|
|||
extractProjectKeyFromRequest,
|
||||
extractSessionIdFromRequest,
|
||||
extractPayloadFromRequest,
|
||||
getCompressionConfig
|
||||
getCompressionConfig,
|
||||
getAvailableRooms
|
||||
} = require('../utils/helper-ee');
|
||||
const {createAdapter} = require("@socket.io/redis-adapter");
|
||||
const {createClient} = require("redis");
|
||||
|
|
@ -69,9 +70,6 @@ const uniqueSessions = function (data) {
|
|||
return resArr;
|
||||
}
|
||||
|
||||
const getAvailableRooms = async function () {
|
||||
return io.of('/').adapter.allRooms();
|
||||
}
|
||||
|
||||
const respond = function (res, data) {
|
||||
let result = {data}
|
||||
|
|
@ -89,7 +87,7 @@ const socketsList = async function (req, res) {
|
|||
let filters = await extractPayloadFromRequest(req, res);
|
||||
|
||||
let liveSessions = {};
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey, sessionId} = extractPeerId(peerId);
|
||||
if (projectKey !== undefined) {
|
||||
|
|
@ -116,7 +114,7 @@ const socketsListByProject = async function (req, res) {
|
|||
let _sessionId = extractSessionIdFromRequest(req);
|
||||
let filters = await extractPayloadFromRequest(req, res);
|
||||
let liveSessions = {};
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey, sessionId} = extractPeerId(peerId);
|
||||
if (projectKey === _projectKey && (_sessionId === undefined || _sessionId === sessionId)) {
|
||||
|
|
@ -144,7 +142,7 @@ const socketsLive = async function (req, res) {
|
|||
debug && console.log("[WS]looking for all available LIVE sessions");
|
||||
let filters = await extractPayloadFromRequest(req, res);
|
||||
let liveSessions = {};
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey} = extractPeerId(peerId);
|
||||
if (projectKey !== undefined) {
|
||||
|
|
@ -173,7 +171,7 @@ const socketsLiveByProject = async function (req, res) {
|
|||
let _sessionId = extractSessionIdFromRequest(req);
|
||||
let filters = await extractPayloadFromRequest(req, res);
|
||||
let liveSessions = {};
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey, sessionId} = extractPeerId(peerId);
|
||||
if (projectKey === _projectKey && (_sessionId === undefined || _sessionId === sessionId)) {
|
||||
|
|
@ -205,7 +203,7 @@ const autocomplete = async function (req, res) {
|
|||
let filters = await extractPayloadFromRequest(req);
|
||||
let results = [];
|
||||
if (filters.query && Object.keys(filters.query).length > 0) {
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey} = extractPeerId(peerId);
|
||||
if (projectKey === _projectKey) {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,8 @@ const {
|
|||
extractSessionIdFromRequest,
|
||||
extractPayloadFromRequest,
|
||||
getCompressionConfig,
|
||||
getUWSCompressionConfig
|
||||
getUWSCompressionConfig,
|
||||
getAvailableRooms
|
||||
} = require('../utils/helper-ee');
|
||||
const wsRouter = express.Router();
|
||||
|
||||
|
|
@ -54,10 +55,6 @@ const createSocketIOServer = function (server, prefix) {
|
|||
}
|
||||
}
|
||||
|
||||
const getAvailableRooms = async function () {
|
||||
return io.sockets.adapter.rooms.keys();
|
||||
}
|
||||
|
||||
const respond = function (res, data) {
|
||||
let result = {data}
|
||||
if (process.env.uws !== "true") {
|
||||
|
|
@ -73,7 +70,7 @@ const socketsList = async function (req, res) {
|
|||
debug && console.log("[WS]looking for all available sessions");
|
||||
let filters = await extractPayloadFromRequest(req, res);
|
||||
let liveSessions = {};
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey, sessionId} = extractPeerId(peerId);
|
||||
if (projectKey !== undefined) {
|
||||
|
|
@ -100,7 +97,7 @@ const socketsListByProject = async function (req, res) {
|
|||
let _sessionId = extractSessionIdFromRequest(req);
|
||||
let filters = await extractPayloadFromRequest(req, res);
|
||||
let liveSessions = {};
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey, sessionId} = extractPeerId(peerId);
|
||||
if (projectKey === _projectKey && (_sessionId === undefined || _sessionId === sessionId)) {
|
||||
|
|
@ -128,7 +125,7 @@ const socketsLive = async function (req, res) {
|
|||
debug && console.log("[WS]looking for all available LIVE sessions");
|
||||
let filters = await extractPayloadFromRequest(req, res);
|
||||
let liveSessions = {};
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey} = extractPeerId(peerId);
|
||||
if (projectKey !== undefined) {
|
||||
|
|
@ -156,7 +153,7 @@ const socketsLiveByProject = async function (req, res) {
|
|||
let _sessionId = extractSessionIdFromRequest(req);
|
||||
let filters = await extractPayloadFromRequest(req, res);
|
||||
let liveSessions = {};
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey, sessionId} = extractPeerId(peerId);
|
||||
if (projectKey === _projectKey && (_sessionId === undefined || _sessionId === sessionId)) {
|
||||
|
|
@ -187,7 +184,7 @@ const autocomplete = async function (req, res) {
|
|||
let filters = await extractPayloadFromRequest(req);
|
||||
let results = [];
|
||||
if (filters.query && Object.keys(filters.query).length > 0) {
|
||||
let rooms = await getAvailableRooms();
|
||||
let rooms = await getAvailableRooms(io);
|
||||
for (let peerId of rooms) {
|
||||
let {projectKey} = extractPeerId(peerId);
|
||||
if (projectKey === _projectKey) {
|
||||
|
|
@ -215,7 +212,13 @@ const findSessionSocketId = async (io, peerId) => {
|
|||
|
||||
async function sessions_agents_count(io, socket) {
|
||||
let c_sessions = 0, c_agents = 0;
|
||||
if (io.sockets.adapter.rooms.get(socket.peerId)) {
|
||||
const rooms = io.sockets.adapter.rooms;
|
||||
debug && console.log("----rooms from adapter:");
|
||||
debug && console.log(rooms);
|
||||
const rooms2 = await getAvailableRooms(io);
|
||||
debug && console.log("----rooms from getRooms");
|
||||
debug && console.log(rooms2);
|
||||
if (rooms.get(socket.peerId)) {
|
||||
const connected_sockets = await io.in(socket.peerId).fetchSockets();
|
||||
|
||||
for (let item of connected_sockets) {
|
||||
|
|
|
|||
|
|
@ -169,10 +169,18 @@ const getUWSCompressionConfig = function () {
|
|||
}
|
||||
return compression;
|
||||
}
|
||||
const getAvailableRooms = async function (io) {
|
||||
if (process.env.redis === "true") {
|
||||
return io.of('/').adapter.allRooms();
|
||||
} else {
|
||||
return helper.getAvailableRooms(io);
|
||||
}
|
||||
}
|
||||
module.exports = {
|
||||
extractProjectKeyFromRequest,
|
||||
extractSessionIdFromRequest,
|
||||
extractPayloadFromRequest,
|
||||
getCompressionConfig,
|
||||
getUWSCompressionConfig
|
||||
getUWSCompressionConfig,
|
||||
getAvailableRooms
|
||||
};
|
||||
Loading…
Add table
Reference in a new issue