0

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

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

任何帮助将不胜感激。

4

2 回答 2

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();
...
于 2013-10-18T16:07:01.153 回答
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}); 
    }
}
于 2013-08-12T13:30:46.947 回答