2011-07-27 14 views
6

Tengo el siguiente código en el lado del servidor, que hace que la función invoque una nueva conexión con el socket.cómo transmitir cuando esté fuera del bucle socket.io

var io = require('socket.io').listen(80); 

io.sockets.on('connection', function (socket) { 
    socket.broadcast.emit('user connected'); 
}); 

ahora tengo otro módulo que toma la solicitud de descanso y desea transmitir en todos los enchufes abiertos. ¿Cómo puede hacerse esto?

¿Hay alguna forma de utilizar broadcast sin socket? como

io.broadcast.emit('user connected'); 

Editar de la misma familia?

io.sockets.broadcast.to('m1').emit('user message', 'from', 'msg'); 

Respuesta

7

Sí, de hecho! Solo llámalo en io.sockets.

io.sockets.emit('user connected') 

Esto es casi exactamente lo que hace broadcast, excepto que broadcast toma el paso adicional de excluir a sí mismo de la emisión.

Editar:

Para el alcance de la habitación, como se ha especificado, haga lo siguiente:

io.sockets.in('m1').emit('user message', 'from', 'msg'); 
+0

Estoy tratando de utilizar broadcast.to ('M1') que tendrá difusión, se Hay alguna forma de acceder a la transmisión? – mamu

+1

Publicación actualizada para hacer coincidir. "broadcast" en sí mismo simplemente establece banderas en el socket actual, por lo que no hay un objeto de "broadcast" global para acceder; tienes que usar los métodos que existen en el espacio de nombres. –

Cuestiones relacionadas