2015-03-08 4 views
0

У меня есть 4 розетки в комнате. Как я могу соединить сокеты? Я хочу использовать его следующим образом:Как соединить сокеты в socket.io?

socket1 = param1; 
socket2 = param2; 
socket3 = param3; 
socket4 = param4; 

allSockets = ??? 

allSockets.on('', function(...)...) 
+0

Вы можете транслировать/испускает всем членов комнаты. Я не знаю, как можно применить слушателя, который слушает только эти сокеты в комнате, не подключая слушателя к каждому гнезду в комнате. – jfriend00

+0

И как я могу слушать все, если я получу его в 4 параметрах? – 92mate

+0

Я не понимаю, что вы подразумеваете под «если я получу 4 параметра». Если вы пытаетесь реализовать определенную подпись функции, пожалуйста, покажите, как объявляется эта функция. – jfriend00

ответ

0

Вы можете транслировать/излучать всех членов комнаты. Я не знаю, как применить слушателя, который прослушивает только эти сокеты в комнате, без добавления отдельного слушателя в каждый сокет в комнате.

Я могу придумать пару альтернативных реализаций:

Если у вас есть массив сокетов, которые вы хотите применить слушателей, то вы можете просто перебирать массив и добавить слушателей:

function addListeners(sockets, msg, fn) { 
    for (var i = 0; i < sockets.length; i++) { 
     sockets[i].on(msg, fn); 
    } 
} 

это также может быть возможным, чтобы добавить слушатель ко всем разъемам, но только обработать сообщение, если сокет фактически в том или ином Rooom:

io.on('connection', function(socket) { 
    socket.on("msg", function(data) { 
     // here check if this socket is actually in the desired room 
     // if so, process the message 
     // if not, ignore the message 
    }); 
}); 
Смежные вопросы