2013-08-12 67 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