Estoy atascado con la versión más nueva de socket.io. Todo estaba bien, pero cuando quise actualizar a socket.io 3, todo se rompió y, actualmente, en el cliente, recibo un código de estado HTTP 400 con la siguiente respuesta JSON: {"code":5,"message":"Unsupported protocol version"}
Configuración del lado del servidor -
const io = require("socket.io")(server, { cors: { origin: config.clientURL, methods: ["GET", "POST"], credentials: true, }, });Configuración del lado del cliente -
const socket = io(backendURL, { withCredentials: true, });Probé muchas cosas y volví a implementar muchas veces, pero el error no desapareció.
Como referencia, tengo estos repositorios de github:
Cliente en react.js - repositorio de GitHub
Servidor en nodeJs y socket.io.js - repositorio de GitHub
Parece que puede haber una discrepancia entre las versiones de su socket.io-client y socket.io server.
Primero, actualice los servidores con allowEIO3 establecido en verdadero (agregado en socket.io@3.1.0)
const io = require("socket.io")({ allowEIO3: true // false by default });Después de actualizar socket.io-client (la última en este momento es 3.1.1), puede volver a configurarlo o eliminarlo, ya que el valor predeterminado es falso.
const io = require("socket.io")({ allowEIO3: false });Instalo la versión antigua por
npx create-nuxt-app@2.15.0Instalará nuxt con express.js en un proyecto. Luego actualice los paquetes npm mediante comandos:
npx npm-check-updates -u npm iY socket.io va bien entre nuxt y socket.io en el servidor