Estoy alojando mi servidor socket.io en heroku y estoy ejecutando el lado del cliente de la aplicación en localhost. En la interfaz, establezco la conexión socket.io de esta manera:
const socket = io("https://<my-app-name>.herokuapp.com:5000/");Y el backend se ve así:
const port = 5000; const io = require("socket.io")(port, { cors: { origin: "*" } }); io.on("connection", (socket) => { console.log(socket.id) }Pero la conexión no se establece y en la consola de mi navegador recibo este error:
GET https://<my-app-name>.herokuapp.com:5000/socket.io/?EIO=4&transport=polling&t=Nym-K6b net::ERR_CONNECTION_TIMED_OUTPor cierto, funciona bien cuando también estoy ejecutando el lado del servidor en mi host local.
https://socket.io/docs/v4/troubleshooting-connection-issues/#the-server-is-not-reachable
Asegúrese de que el servidor Socket.IO sea realmente accesible en la URL proporcionada. Puede probarlo con:
curl "<the server URL>/socket.io/?EIO=4&transport=polling"que debería devolver algo como esto:0{"sid":"Lbo5JLzTotvW3g2LAAAA","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":20000}. Si ese no es el caso, verifique que el servidor Socket.IO se esté ejecutando y que no haya nada en el medio que impida la conexión.