Node.js był czymś, co naprawdę mnie interesowało i użyłem go w jednym z moich projektów do stworzenia gry wieloosobowej.
io.sockets.in().emit()
i socket.broadcast.to().emit()
są to dwie główne metody emitowania, których używamy w pokojach Socket.io ( https://github.com/LearnBoost/socket.io/wiki/Rooms ) Pokoje umożliwiają proste partycjonowanie podłączonych klientów. Pozwala to na emitowanie zdarzeń do podzbiorów listy podłączonych klientów i zapewnia prostą metodę zarządzania nimi.
Pozwalają nam zarządzać podzbiorami listy podłączonych klientów (które nazywamy pokojami) i mają podobne funkcje, jak główne funkcje socket.io io.sockets.emit()
i socket.broadcast.emit()
.
Zresztą postaram się podać przykładowe kody z komentarzami do wyjaśnienia. Zobacz, czy to pomaga;
Pokoje Socket.io
i) io.sockets.in (). emit ();
/* Send message to the room1. It broadcasts the data to all
the socket clients which are connected to the room1 */
io.sockets.in('room1').emit('function', {foo:bar});
ii) socket.broadcast.to (). emit ();
io.sockets.on('connection', function (socket) {
socket.on('function', function(data){
/* Broadcast to room1 except the sender. In other word,
It broadcast all the socket clients which are connected
to the room1 except the sender */
socket.broadcast.to('room1').emit('function', {foo:bar});
}
}
Socket.io
i) io.sockets.emit ();
/* Send message to all. It broadcasts the data to all
the socket clients which are connected to the server; */
io.sockets.emit('function', {foo:bar});
ii) socket.broadcast.emit ();
io.sockets.on('connection', function (socket) {
socket.on('function', function(data){
// Broadcast to all the socket clients except the sender
socket.broadcast.emit('function', {foo:bar});
}
}
Twoje zdrowie