在socket.io中广播?

时间:2013-08-12 09:40:12

标签: socket.io broadcasting

如何在socket.io中的所有连接的客户端之间广播消息?我正在服务器端使用mrniko / netty-cosket.io服务器和java(play / eclipse),客户端使用socket.io.js 0.9。客户和客户服务器工作正常(即发送和接收消息)。保持连接客户端的记录,我正在使用hashMaps并向所有连接的用户发送消息,我正在迭代哈希映射并逐个发送消息。只是想知道有没有更好的方法立即向所有连接的客户端发送消息?任何帮助将受到高度赞赏。

2 个答案:

答案 0 :(得分:2)

以下是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();
...

答案 1 :(得分:1)

您可以使用以下代码:

//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}); 
    }
}