广播一个房间



为什么房间广播不起作用?我觉得我还没跟上文档。如何检查客户是否在场?

io.sockets.on('connection', function (socket) {
socket.secure = true;
socket.on('connection', function (id_user) {
    socket.broadcast.emit('connection', id_user);
    var condition = { id_user: id_user };
    var query = dbh.query('SELECT `id_channel` FROM `TABG_pm_channel` WHERE ?', condition, function(err, rows, fields) {
        rows.forEach(function(row) {
            socket.join(row.id_channel);
            console.log('ajout de l'user #'+id_user+' au salon #'+row.id_channel);
        });
    });
    console.log('Connection of user id '+id_user);
});
socket.on('disco', function (id_user) {
    socket.broadcast.emit('disco', id_user);
    console.log('Disconnection of user id '+id_user);
});
socket.on('privmsg', function (msg) {
    msg.text = sanitizer.sanitize(msg.text);
    post  = {id: '', id_channel: msg.id_channel, msg: msg.text, invitation: 0, id_sender: msg.id_sender, date: date()};
    dbh.query('INSERT INTO TABG_pm SET ?', post);
    socket.broadcast.to(post.id_channel).emit('new_privmsg', msg.text);
});

io.sockets.clients('room')将为您提供房间中所有客户端的实例。

https://github.com/LearnBoost/socket.io/wiki/Rooms

最新更新