Digamos que estoy construyendo una aplicación social. Quiero iniciar sesión en varias cuentas (una por instancia de navegador) sin una interfaz de usuario (todas a través de un nodo) y llamando a todos los puntos finales respectivos para iniciar sesión y comenzar a chatear.
La parte importante es probar cuando un usuario cierra la pestaña o se desconecta o abandona el grupo y por lo tanto se cierra la conexión del websocket.
Si te entiendo bien. Le gustaría hacer que un evento del lado del servidor suceda cada vez que un cliente se conecta o desconecta, sin ningún html, css... o cualquier otra interfaz de usuario. Puedes hacerlo así en el nodo:
Para la conexión se utiliza:
Server.on("connection,function(ws){some stuff...})La función que se llama en la conexión obtendrá el websocket que se conectó como parámetro de forma predeterminada. Solo uso una función lambda aquí, también puede llamar a una que luego obtendrá el websocket como parámetro.
Para la desconexión, coloque una función en la función Server.on para monitorear cuándo se desconectó el cliente. Como esto :
Server.on("connection,function(ws){ ws.onclose = function (ws) { some stuff... } })Puede reemplazar nuevamente la función lambda por otra. El servidor es en mi caso igual a esto:
const wsserver = require("ws").Server const server = new wsserver({ port: someport })Pero puede variar. Todo lo que necesita hacer aparte de eso es conectar el cliente. Yo lo hago así pero también puede variar.
const ws = new WebSocket("ws://localhost:someport");Espero que esto sea útil.