获取socket.io中的所有房间名称

时间:2015-06-11 03:50:25

标签: javascript sockets

我正在使用socket.io v1.3.5来创建聊天室,现在我有了一个代码:

console.log(socket.rooms);

得到输出:

[ 'pBtWJZqN23xAJw0sAAAE', 'test' ]
[ 'GPnwtq3gi9t1RZcCAAAD', 'Lobby' ]
[ 'n7tTlvoH1M7foT3ZAAAC', 'Lobby' ]

我在2个房间里有3个socket.id' lobby'并且'测试'。我想获得一系列像这样的房间名称:

var listroom = ['Lobby','test']

请阅读。

1 个答案:

答案 0 :(得分:4)

这不是一个正确的回应:

[ 'pBtWJZqN23xAJw0sAAAE', 'test' ]
[ 'GPnwtq3gi9t1RZcCAAAD', 'Lobby' ]
[ 'n7tTlvoH1M7foT3ZAAAC', 'Lobby' ]

让我猜它实际上是:

[['pBtWJZqN23xAJw0sAAAE', 'test'], ['GPnwtq3gi9t1RZcCAAAD', 'Lobby'], ['n7tTlvoH1M7foT3ZAAAC', 'Lobby']]

如果不是,请纠正我。

只需遍历数组并收集值:

var values = [];
for (var i = 0; i < socket.rooms.length; i++)
{
    var room = socket.rooms[i];
    if (values.indexOf(room[1]) === -1) values.push(room[1]);
}

console.log(values);

工作JS小提琴演示:http://jsfiddle.net/bcbctaLd/