请检查下面的服务器端代码。假设 data.id 在某个时刻是 abc77,那么每个连接的浏览器都会收到一个套接字消息“my_model/abc77:update”,还是只接收订阅了这个特定消息的浏览器,而不管 socket.io 事件是引发还是不是?

澄清一下,使用实际应用程序:黑客是否能够使用浏览器的开发人员控制台接收消息“my_model/abc77:update”,即使他的应用程序实例没有订阅它,也不知道 data.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');
            }
        });

    });
});

最佳答案

它被广播到所有其他连接的套接字。要将广播限制到特定的套接字组,请使用 rooms

关于security - socket.io 只向订阅者广播吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9137140/

10-12 07:25