Member-only story
Node.js Basics — Socket.io Namespace and Rooms
3 min readJan 22, 2021
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`);
});