如何在 socket.io 中所有连接的客户端之间广播消息?
我在服务器端使用带有 java (play/eclipse) 的 mrniko/netty-cosket.io 服务器,在客户端使用 socket.io.js 0.9。客户端和服务器都工作正常(即发送和接收消息)。为了保留已连接客户端的记录,我正在使用 hashMaps 并向所有已连接的用户发送消息,我正在迭代 hashmap 并一一发送消息。只是想知道有没有更好的方法一次向所有连接的客户端发送消息?
任何帮助将不胜感激。
如何在 socket.io 中所有连接的客户端之间广播消息?
我在服务器端使用带有 java (play/eclipse) 的 mrniko/netty-cosket.io 服务器,在客户端使用 socket.io.js 0.9。客户端和服务器都工作正常(即发送和接收消息)。为了保留已连接客户端的记录,我正在使用 hashMaps 并向所有已连接的用户发送消息,我正在迭代 hashmap 并一一发送消息。只是想知道有没有更好的方法一次向所有连接的客户端发送消息?
任何帮助将不胜感激。
以下是使用 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();
...
您可以使用以下代码:
//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});
}
}