socket.io只向用户广播吗?

时间:2012-02-04 00:06:33

标签: security node.js websocket socket.io broadcasting

请检查下面的服务器端代码。假设data.id在某个瞬间是abc77,每个连接的浏览器是否会收到套接字消息“my_model / abc77:update”,或者只接收已订阅此特定消息的消息,无论是否引发了socket.io事件或不?

使用实际应用澄清:黑客是否能够使用浏览器的开发者控制台接收消息'my_model / abc77:update',即使他的应用程序实例没有订阅它,也不知道数据.id是abc77?

var io = require('socket.io');
io.listen ( server ).sockets.on ( 'connection', function ( socket ) {

    socket.on('my_model:update', function(data, callback) {

        database.save(data, function(err){
            if (!err) {
                callback(data);
                socket.broadcast.emit('my_model/'+data.id+':update');
            }
        });

    });
});

1 个答案:

答案 0 :(得分:1)

它被广播到连接的每个其他插座。要将广播限制为某组套接字,请使用rooms