Estoy enfrentando un problema extraño. Tengo un servidor backend express. Cuando no tengo una URL base para mi backend, las llamadas ws funcionan bien:
Pero, si agrego una URL base (por ejemplo, si agrego /api/ como parte de la url), mis conexiones fallan:
Esta es la parte de mi código backend:
const easyrtc = require("open-easyrtc"); // EasyRTC external module // Start Express http server const webServer = http.createServer(app); const socketIo = require("socket.io")(webServer, {path: '/api/'}); // web socket external module // Start Socket.io so it attaches itself to Express server const socketServer = socketIo.listen(webServer, { "log level": 1 }); easyrtc.listen(app, socketServer, null, (err, rtcRef) => { console.log("Initiated"); rtcRef.events.on( "roomCreate", (appObj, creatorConnectionObj, roomName, roomOptions, callback) => { console.log("roomCreate fired! Trying to create: " + roomName); appObj.events.defaultListeners.roomCreate( appObj, creatorConnectionObj, roomName, roomOptions, callback ); } ); }); // Listen on port webServer.listen(port, () => { console.log("listening"); });¿Por qué sucede esto y cómo puedo solucionarlo? He estado perdido en esto durante una semana.
https://socket.io/docs/v4/opciones-del-servidor/
/socket.io/ es el valor predeterminado para la opción de path . Si usa la opción {path: '/api/'} , entonces debe llamar
ws://localhost:3000/api/?EIO=3.... en lugar de ws://localhost:3000/api/socket.io/?EIO=3...