В настоящее время я использую адаптер redis в моей настройке socketio. Я хочу иметь возможность получить массив сокетов от адаптера redis, чтобы я мог проверять сеанс и отправлять данные в массив только с правильным идентификатором учетной записи.следующий код, но возвращает пустой массив любую помощь?
NET.getDashboardSockets = () => {
return new Promise((resolve, reject) => {
const sockets = [];
NET._io.of("/dashboard").adapter.clients((err, clients) => {
if (clients.length > 0 && err == null) {
for (let i = 0; i < clients.length; i++) {
const client = clients[i];
const socketData = NET._io.of("/dashboard").to(client)
if (socketData != null) {
sockets.push(socketData);
}
}
}
resolve(sockets);
});
})
}
NET.getDashboardSocketsWithId = (Account) => {
return new Promise((resolve, reject) => {
const retsockets = [];
NET.getDashboardSockets().then(sockets => {
for (let i = 0; i < sockets.length; i++) {
const socket = sockets[i];
if (socket.handshake != null) {
const acctId = socket.handshake.session.accountId;
if (acctId != null) {
if (acctId == Account.getId()) {
retsockets.push(socket);
}
}
}
}
resolve(retsockets);
})
})
}