Workshop: Real-time communicatie met WebSockets en NPM

Doel: Studenten leren WebSockets te installeren en gebruiken met behulp van NPM om real-time communicatie in webapplicaties te implementeren.

<aside> ⚠️

Benodigdheden:

Stap 1: Project setup

  1. Maak een nieuwe projectmap aan:
  2. Initialiseer een nieuw Node.js project:

Stap 2: WebSocket library installeren

  1. Installeer de ws library:

Stap 3: Server-side code (Node.js)

  1. Maak een server.js bestand:
  2. Voeg de volgende code toe aan server.js:

JavaScript

    const WebSocket = require('ws');
    const wss = new WebSocket.Server({ port: 8080 });

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

      ws.on('message', message => {
        console.log(`Received: ${message}`);
        wss.clients.forEach(client => {
          if (client !== ws && client.readyState === WebSocket.OPEN) {
            client.send(`Server: ${message}`);
          }
        });
      });

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

    console.log('WebSocket server started on port 8080');

Stap 4: Client-side code (HTML/JavaScript)

  1. Maak een index.html bestand:
  2. Voeg de volgende code toe aan index.html:

HTML

    <!DOCTYPE html>
    <html>
    <head>
      <title>WebSocket Client</title>
    </head>
    <body>
      <input type="text" id="messageInput">
      <button id="sendButton">Send</button>
      <ul id="messages"></ul>

      <script>
        const socket = new WebSocket('ws://localhost:8080');
        const messageInput = document.getElementById('messageInput');
        const sendButton = document.getElementById('sendButton');
        const messages = document.getElementById('messages');

        socket.addEventListener('open', () => {
          console.log('Connected to server');
        });

        socket.addEventListener('message', event => {
          const message = document.createElement('li');
          message.textContent = event.data;
          messages.appendChild(message);
        });

        socket.addEventListener('close', () => {
          console.log('Disconnected from server');
        });

        sendButton.addEventListener('click', () => {
          const message = messageInput.value;
          socket.send(message);
          messageInput.value = '';
        });
      </script>
    </body>
    </html>

Stap 5: De applicatie uitvoeren

  1. Start de server: