【问题标题】:Broadcasting in socket.io?在 socket.io 中广播?
【发布时间】:2013-08-12 09:40:11
【问题描述】:

如何在 socket.io 中所有连接的客户端之间广播消息?

我在服务器端使用带有 java (play/eclipse) 的 mrniko/netty-cosket.io 服务器,在客户端使用 socket.io.js 0.9。客户端和服务器都工作正常(即发送和接收消息)。为了保留已连接客户端的记录,我正在使用 hashMaps 并向所有已连接用户发送消息,我正在迭代 hashmap 并一一发送消息。只是想知道有没有更好的方法一次向所有连接的客户端发送消息?

任何帮助将不胜感激。

【问题讨论】:

    标签: socket.io broadcasting


    【解决方案1】:

    这里是一个使用 mrniko/netty-socket.io 的例子:

    Configuration config = new Configuration();
        config.setHostname("localhost");
        config.setPort(9092);
    
    SocketIOServer server = new SocketIOServer(config);
    
    BroadcastOperations bo = server.getBroadcastOperations();
    // every method will broadcast messages to all server clients
    bo.sendJsonObject(...)
    
    server.start();
    ...
    

    【讨论】:

    • 感谢 Nikita 的帮助 :)
    【解决方案2】:

    您可以使用以下代码:

    //broadcasts to all clients connected
    io.sockets.emit('function', {foo:bar});
    
    //broadcasts to all clients connected, except the sender
    io.sockets.on('connection', function (socket) {
        socket.on('message', function(data) {
            socket.broadcast.emit('function', {foo:bar}); 
        }
    }
    

    【讨论】:

    • 感谢@KomP 的帮助 :)
    猜你喜欢
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 2017-11-06
    • 2012-04-27
    相关资源
    最近更新 更多