为什么房间广播不起作用?我觉得我还没跟上文档。如何检查客户是否在场?
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')
将为您提供房间中所有客户端的实例。