DEV Community

MAURICE OMBEWA
MAURICE OMBEWA

Posted on

Understanding WebSockets: A Beginner-Friendly Guide

If you’ve ever used a chat app, online game, or real-time dashboard, you’ve probably benefited from WebSockets, even if you didn’t know it.

This guide will take you from zero to comfortable with WebSockets.

By the end, you’ll know what they are, why they’re useful, and how to use them, with simple examples.


1. What Are WebSockets?

Normally, when you load a webpage, your browser sends a request to a server, and the server sends back a response. This is called HTTP.

The problem?

  • HTTP is one-way. Once the server responds, the connection ends.
  • If you want new data, you must send another request.

WebSockets fix this by keeping a connection open so that the server and client can send messages to each other anytime.

Think of it like:

  • HTTP → sending a letter and waiting for a reply each time.
  • WebSockets → making a phone call and talking freely in real time.

2. Why Use WebSockets?

They’re perfect for situations where instant updates are important:

  • 🗨️ Chat apps (messages appear instantly)
  • 📈 Stock tickers (prices update live)
  • 🎮 Online multiplayer games (real-time movement)
  • 📊 Dashboards (live metrics and logs)

3. How WebSockets Work

  1. Handshake

    The client (browser) asks the server to upgrade the connection from HTTP to WebSocket.

  2. Open Connection

    Once accepted, both can send messages to each other anytime.

  3. Data Exchange

    Messages travel instantly in both directions.

  4. Close Connection

    When done, either side can close the connection.


4. A Simple Example

Let’s say we want a real-time chat between a browser and a server.

Server (Node.js)

// Install with: npm install ws
import { WebSocketServer } from 'ws';

const wss = new WebSocketServer({ port: 3000 });

wss.on('connection', (ws) => {
  console.log('New client connected');

  ws.on('message', (message) => {
    console.log('Received:', message.toString());
    ws.send(`You said: ${message}`);
  });

  ws.on('close', () => {
    console.log('Client disconnected');
  });
});
Enter fullscreen mode Exit fullscreen mode

Client (HTML + JavaScript)

<!DOCTYPE html>
<html>
<body>
  <input id="msg" placeholder="Type a message">
  <button onclick="sendMessage()">Send</button>
  <div id="chat"></div>

  <script>
    const socket = new WebSocket('ws://localhost:3000');

    socket.onopen = () => {
      console.log('Connected to server');
    };

    socket.onmessage = (event) => {
      document.getElementById('chat').innerHTML += `<p>${event.data}</p>`;
    };

    function sendMessage() {
      const message = document.getElementById('msg').value;
      socket.send(message);
    }
  </script>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

💡 What’s happening here?

  • When you click Send, the browser sends the message to the server instantly.
  • The server sends back "You said: ..." immediately.
  • No refreshing or reloading!

5. Real-Life Analogy

Imagine a walkie-talkie:

  • You press the button and talk.
  • The other person hears you instantly.
  • They can talk back immediately.

That’s exactly how WebSockets work - real-time, two-way communication.


6. Common Use Cases with Examples

6.1 Live Chat

  • Example: WhatsApp Web, Slack
  • WebSocket allows messages to show up instantly for all participants.

6.2 Live Notifications

  • Example: Facebook showing “New comment” without refresh.
socket.onmessage = (event) => {
  alert(`🔔 Notification: ${event.data}`);
};
Enter fullscreen mode Exit fullscreen mode

6.3 Real-Time Updates

  • Example: Sports scores, live election results.

6.4 Multiplayer Games

  • Example: Sending player movement data instantly.

7. Tips for Beginners

  1. Start simple – build a small app first (like the chat example).
  2. Use libraries – in Node.js, ws is great. In Python, try websockets.
  3. Handle disconnects – always check if the connection drops and reconnect if needed.
  4. Secure it – use wss:// for secure connections over HTTPS.

8. Wrapping Up

WebSockets make your apps interactive, real-time, and engaging.

If you understand the basics:

  • How they keep connections open
  • How they send messages both ways
  • How to use them with simple code

…then you can confidently build live features like chat apps, notifications, and dashboards.


Top comments (0)