0
0
Expressframework~5 mins

Handling connection events in Express

Choose your learning style9 modes available
Introduction

Handling connection events lets your app know when users connect or disconnect. This helps you manage real-time interactions smoothly.

You want to greet users when they join a chat room.
You need to track how many users are online.
You want to clean up resources when a user leaves.
You want to log connection times for analytics.
Syntax
Express
const express = require('express');
const http = require('http');
const { Server } = require('socket.io');

const app = express();
const server = http.createServer(app);
const io = new Server(server);

io.on('connection', (socket) => {
  // code to run when a user connects
  socket.on('disconnect', () => {
    // code to run when a user disconnects
  });
});

server.listen(3000);

The connection event runs when a user connects.

The disconnect event runs when a user leaves.

Examples
This logs a message every time a user connects.
Express
io.on('connection', (socket) => {
  console.log('A user connected');
});
This logs a message when a user disconnects.
Express
io.on('connection', (socket) => {
  socket.on('disconnect', () => {
    console.log('A user disconnected');
  });
});
This sends a welcome message to the user right after they connect.
Express
io.on('connection', (socket) => {
  socket.emit('welcome', 'Hello!');
});
Sample Program

This program starts a server that listens for users connecting and disconnecting. It logs their connection status and sends a welcome message when they join.

Express
const express = require('express');
const http = require('http');
const { Server } = require('socket.io');

const app = express();
const server = http.createServer(app);
const io = new Server(server);

io.on('connection', (socket) => {
  console.log('User connected:', socket.id);
  socket.emit('welcome', 'Welcome to the server!');

  socket.on('disconnect', () => {
    console.log('User disconnected:', socket.id);
  });
});

server.listen(3000, () => {
  console.log('Server listening on port 3000');
});
OutputSuccess
Important Notes

Each user connection has a unique socket.id to identify them.

Use connection events to manage real-time features like chat or notifications.

Summary

Connection events let you detect when users join or leave.

Use io.on('connection') to run code on user connect.

Use socket.on('disconnect') to run code on user disconnect.