Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

225
Vistas
Socket io arroja un error: está intentando adjuntar socket.io a una función de controlador de solicitud expresa

Soy nuevo en WebSocket, así que estoy tratando de crear una aplicación que use WebSocket para actualizar en tiempo real. Aquí está mi código:

 const PORT = process.env.PORT || 3000; const INDEX = "./index.html"; const socketIO = require("socket.io"); const express = require("express"); const app = express(); app.get("/", (req, res) => { res.sendFile(INDEX, { root: __dirname }); }); app.listen(PORT, () => { console.log("SERVER LISTENING ON PORT http://localhost:3000"); }); const io = socketIO(app); io.on("connection", (socket) => { console.log("Client connected"); socket.on("disconnect", () => console.log("Client disconnected")); });

Este código arroja un error de la siguiente manera:

Error: está intentando adjuntar socket.io a una función de controlador de solicitud expresa. Pase una instancia de http.Server.

Pero cuando escribo el código de la siguiente manera:

 const PORT = process.env.PORT || 3000; const INDEX = "/index.html"; const socketIO = require("socket.io"); const express = require("express"); const server = express() .get("/", (req, res) => res.sendFile(INDEX, { root: __dirname })) .use("/static", express.static("static")) .listen(PORT, () => console.log(`Listening on ${PORT}`)); const io = socketIO(server); io.on("connection", (socket) => { console.log("Client connected"); socket.on("disconnect", () => console.log("Client disconnected")); });

Simplemente funciona.

Por favor, ayúdame ¿Qué está pasando aquí?

¡¡¡Gracias de antemano!!!

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

socket.io espera una instancia devuelta por el método app.listen (donde la aplicación es una instancia expresa)

En el primer fragmento de código, está pasando una instancia expresa que es incorrecta, como mencioné anteriormente

La solución para el primer fragmento de código, para que pueda entenderlo mejor

 const PORT = process.env.PORT || 3000 const INDEX = './index.html' const socketIO = require('socket.io') const express = require('express') const app = express() const server = app.listen(PORT, () => { console.log('SERVER LISTENING ON PORT http://localhost:3000') }) const io = socketIO(server) app.get('/', (req, res) => { res.sendFile(INDEX, { root: __dirname }) }) io.on('connection', (socket) => { console.log('Client connected') socket.on('disconnect', () => console.log('Client disconnected')) })
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda