Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

222
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!