Categories
JavaScript Answers

How to use socket.io in Express 4, express-generator’s /bin/www, and JavaScript?

Spread the love

Sometimes, we want to use socket.io in Express 4 and express-generator’s /bin/www.

In this article, we’ll look at how to use socket.io in Express 4 and express-generator’s /bin/www.

How to use socket.io in Express 4 and express-generator’s /bin/www?

To use socket.io in Express 4 and express-generator’s /bin/www, we can add the socket.io initialization code in its own file.

For instance, in socketApi.js, we write

const io = require("socket.io")();
const socketApi = {
  io,
};

io.on("connection", (socket) => {
  console.log("A user connected");
});

module.exports = socketApi;

to call io.on with 'connection' to listen for the connection event.

We export the socketApi with

module.exports = socketApi;

Then in /bin/www, we incorporate the socket.io code with

const app = require("../app");
const debug = require("debug")("socketexpress:server");
const http = require("http");
const socketApi = require("../socketApi");

const port = normalizePort(process.env.PORT || "3000");
app.set("port", port);

const server = http.createServer(app);
socketApi.io.attach(server);

//...

We call require to require the socketApi.js file.

Then we call socketApi.io.attach with the Express server to run the socket.io initialization code when we run our Express server.

Conclusion

To use socket.io in Express 4 and express-generator’s /bin/www, we can add the socket.io initialization code in its own file.

Leave a Reply

Your email address will not be published.

If you like the content of this blog, subscribe to my email list to get exclusive articles not available to anyone else.