¿Cómo puedo dejar que el javascript capte una señal desde el nodo y abra una ventana justo después de eso?

Quiero emitir una señal desde la app.js. El archivo ejs debería atraparlo y abrir una ventana. El problema es que tengo que actualizar la página para ver la ventana. También parece que siempre se mostrará si lo actualizo de nuevo.

¿Cómo puedo dejar que la ventana aparezca inmediatamente después de enviar la señal desde app.js? ¿Y solo mostrar una vez?

en la app.js

socket.emit('example_signal') 

en el archivo sample.ejs

 socket.on('example_signal', function(){ alert('hello world') }) 

Parece que encontré la causa de este problema. si escribi

 io.sockets.emit('example_signal') 

directamente, entonces la señal será capturada de inmediato. Si lo escribiera como

  io.sockets.on('connection', function (socket) { io.sockets.emit('example_signal') }) 

de alguna manera esperará la actualización de la página …

Espero que pueda ayudar a otros que encuentran el mismo problema.

 io.sockets.on('connection', function (socket) { io.sockets.emit('example_signal') }) 

de alguna manera esperará la actualización de la página …

Porque eso es lo que dice ese código:

Cuando el navegador se conecta al zócalo, emite una señal.

… y el navegador se conectará al socket cuando se cargue la página.

La eliminación del controlador de eventos que espera una nueva conexión provocará, naturalmente, que la línea io.sockets.emit('example_signal') ejecute inmediatamente en lugar de esperar el evento.