【问题标题】:Does socket.io broadcast to subscribers only?socket.io 是否只向订阅者广播?
【发布时间】:2012-02-26 13:43:42
【问题描述】:

请检查下面的服务器端代码。假设 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');
            }
        });

    });
});

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 2016-02-03
      • 1970-01-01
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多