Socket.IO 2.0在变量中列出Room的所有客户端

时间:2018-06-19 13:29:31

标签: node.js socket.io

我需要帮助。我对此主题进行了过多研究,但找不到任何解决方案。

我们可以使用以下代码列出会议室的所有客户;

io.of('/').in('room').clients((error, clients) => {
    if error throw error;
    console.log(clients);
});

我的问题是如何显示clients的变量结果。

我尝试了以下解决方案: 1)

var list = io.of('/').in('room').clients ((error, clients) => {
    if error throw error;
    return clients;
}); // didn't work

2)

async function getList() {
    return await io.of('/').in('room').clients((error, clients) => {
        if error throw error;
        return clients;
    });
}

1 个答案:

答案 0 :(得分:4)

只需将代码包装在Promise

function getClients() {

    return new Promise((resolve, reject) => {
        io.of('/').in('room').clients((error, clients) => {
            if(error)
                return reject(error);

            resolve(clients);
        });
    });

}

(async() => {
    const clients = await getClients();
})();