Member-only story

Node.js Basics — Socket.io Namespace and Rooms

John Au-Yeung
3 min readJan 22, 2021

--

Photo by deborah cortelazzi on Unsplash

Node.js is a popular runtime platform to create programs that run on it.

It lets us run JavaScript outside the browser.

In this article, we’ll look at how to start using Node.js to create programs.

Namespace and Express Middleware

We can use Socket.io namespaces with Express middleware.

For example, we can write:

index.js

const express = require('express');
const app = express();
const server = require('http').createServer(app);
const options = { /* ... */ };
const io = require('socket.io')(server, options);
const session = require('express-session');
const wrap = middleware => (socket, next) => middleware(socket.request, {}, next);
io.use(wrap(session({ secret: 'cats' })));
io.on('connection', socket => {
console.log('connect')
});
const adminNamespace = io.of('/admin');adminNamespace.use((socket, next) => {
console.log(socket);
next();
});
adminNamespace.on('connection', socket => {
socket.on('delete user', (data) => {
console.log(data);
});
});
app.get('/', (req, res) => {
res.sendFile(`${__dirname}/index.html`);
});

--

--

No responses yet