Skip to content

Server does not attach the req handlers #3266

@Darker

Description

@Darker

You want to:

  • report a bug

Current behaviour

Creating a server as described in the sourcecode results in server that does not work.

Expected behaviour

Either the server should work or report an error. This is really frustrating, I spent hours figuring out why doesn't it work.

Setup

  • OS:
  • browser:
  • socket.io version:

Code

const socketioclient = require("socket.io-client");
const io = require("socket.io");
const net = require("net");

const http_server = net.createServer();
// this didn't work too. Exxentially socket io does not work at all
//   io = io.listen(typeof port == "number" ? port : process.env.PORT);
console.log("Attaching socket IO to HTTP server.");
const ioserv = io(http_server);
/// The port does open
http_server.listen(typeof port == "number" ? port : process.env.PORT,
    () => {
        console.log('IO HTTP server listening on port', http_server.address().port)
    });
/// The connection listener is triggered, but IO doesn't bother 
/// replying or something
http_server.on("connection", (req, res) => {
    console.log("Connection received, but IO ignores it.")
});
ioserv.on("connection", (socket) => {
    console.log("[SERVER] Client connected!");
    client.emit("chat", "Bye!");
    client.on("bye", () => {
        console.log("[SERVER] Client goodbye'd us. Closing server.");
        client.disconnect();
        server.close();
    })
});

ioserv.on("error", () => {
    console.error("[SERVER] IO Error!")
})


const client = socketioclient("http://127.0.0.1:" + process.env.PORT);
client.once("connect", () => {
    console.log("[CLIENT] Connected to remote server.")
});
client.on("chat", (msg) => {
    console.log("[CLIENT] Server sends message:", msg);
    if (msg.toLowerCase().indexOf("bye") != -1) {
        client.emit("bye");
    }
});
client.on("disconnected", () => {
    console.log("[CLIENT] Disconnected.");
})
client.on("error", () => {
    console.error("[CLIENT] Socket IO connection error.")
});

Console output

Notice that this is missing in the output: socket.io:server attaching client serving req handler +0ms

Attaching socket IO to HTTP server.
  socket.io:server initializing namespace / +0ms
  socket.io-parser encoding packet {"type":0,"nsp":"/"} +0ms
  socket.io-parser encoded {"type":0,"nsp":"/"} as 0 +1ms
  socket.io:server creating engine.io instance with opts {"path":"/socket.io","initialPacket":["0"]} +3ms
  socket.io:server attaching client serving req handler +1ms
  socket.io-client:url parse http://127.0.0.1:80 +0ms
  socket.io-client new io instance for http://127.0.0.1:80 +0ms
  socket.io-client:manager readyState closed +0ms
  socket.io-client:manager opening http://127.0.0.1:80 +1ms
  engine.io-client:socket creating transport "polling" +0ms
  engine.io-client:polling polling +0ms
  engine.io-client:polling-xhr xhr poll +0ms
  engine.io-client:polling-xhr xhr open GET: http://127.0.0.1/socket.io/?EIO=3&transport=polling&t=MEwptSw&b64=1 +1ms
  engine.io-client:polling-xhr xhr data null +1ms
  engine.io-client:socket setting transport polling +8ms
  socket.io-client:manager connect attempt will timeout after 20000 +10ms
  socket.io-client:manager readyState opening +1ms
IO HTTP server listening on port 80
Connection received, but IO ignores it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions