How to Build a Real-Time Dashboard with WebSockets: A Practical Guide

Real-time dashboards are essential for monitoring live metrics like user activity, server health, or sales numbers. Unlike traditional HTTP polling, WebSockets provide a persistent, bidirectional channel where data is pushed instantly to the client. This tutorial walks through building a fast, efficient real-time dashboard using Node.js and a vanilla JavaScript frontend.

We’ll use the ws package for the WebSocket server and the native WebSocket API on the client. The server broadcasts data at fixed intervals, while the client listens for messages, updates the DOM, and reconnects automatically if the connection drops.

Article illustration

1. Set Up the WebSocket Server

Install dependencies with npm install ws, then create a WebSocket server that broadcasts dummy metrics, such as CPU and memory usage, every second.

  • Initialize the server on port 8080 using new WebSocketServer({ port: 8080 }).
  • Use setInterval to broadcast a JSON payload to all connected clients.
  • Handle connection and error events to log status.

2. Build the Frontend Client

Connect to the server with new WebSocket('ws://localhost:8080'). When messages arrive, parse them and update the UI accordingly.

  • Add event listeners for open, message, and close.
  • Use JSON.parse on incoming data and JSON.stringify when sending.

3. Visualize Data in Real Time

Update text elements or integrate a charting library like Chart.js to render live graphs.

  • Change numeric values directly via innerText.
  • Append new data points to a chart and trim old ones to avoid memory bloat.

4. Implement Reconnection Logic

Network interruptions happen. Build a simple retry mechanism to keep the dashboard live.

  • On close, attempt to reconnect after a 2-second delay.
  • Display a visual indicator for connection status.

Conclusion

By combining a lightweight WebSocket server with a responsive client, you can build a dashboard that feels instant and scales well under load. Extend it further with user authentication, multiple topic channels, or persistent storage for historical analytics.

sarah antaboga
Author: sarah antaboga

Leave a Reply

Your email address will not be published. Required fields are marked *