Ok, he escrito un servidor websocket en node.js usando el módulo "ws", a continuación está mi código.
const WebSocketServer = require('ws'); const wss = new WebSocketServer.Server({ port: 8080 }) wss.on("connection", ws => { console.log("new client connected"); ws.on("message", data => { wss.clients.forEach(function each(client) { client.send(data); console.log('Sent: ' + data); }); }); ws.on("close", () => { console.log("the client has disconnected"); }); ws.onerror = function () { console.log("Some Error occurred") } }); console.log("The WebSocket server is running on port 8080"); El servidor funciona perfectamente y puedo conectarme a él mediante el new WebSocket("ws://localhost:8080"); en la zona. El problema es que cuando trato de alojar esto en mi aplicación Heroku, el objeto WebSocket detecta el servidor correctamente y no hay errores en la consola.
El problema es que el objeto WebSocket no puede conectarse al servidor. Cuando inspecciono el objeto en la consola, muestra la propiedad ReadyState del socket como '0' (todavía en estado de conexión) durante unos cinco minutos. Luego, el zócalo se cierra solo (ReadyState 3, cerrado). Lo más extraño para mí es que no arroja ningún error.
¿Puede alguien explicar qué diablos está pasando? Estoy un poco perdiendo la cabeza tratando de resolver esto.
Toda ayuda es muy apreciada.
Gracias,
Adi