2013-08-12 65 views
0

如何在socket.io中的所有连接的客户端之间广播消息?我使用服务器端的java(play/eclipse)和客户端的socket.io.js 0.9使用mrniko/netty-cosket.io服务器。两个客户端&服务器都正常工作(即发送和接收消息)。保持连接的客户端的记录,我使用hashMaps并发送消息给所有连接的用户我迭代hashmap并发送消息一个接一个。只是想知道有没有更好的方法一次向所有连接的客户端发送消息?任何帮助将不胜感激。在socket.io中广播?

回答

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}); 
    } 
} 
+0

感谢@KomP您的帮助:) – Omar

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(); 
... 
+0

谢谢尼基塔为你的亲切帮助:) – Omar