Узлы, как получить массив сокетов сокетов от адаптера Redis - PullRequest
0 голосов
/ 28 апреля 2019

В настоящее время я использую адаптер 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);
        })
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...