Bird
Raised Fist0
Expressframework~5 mins

Setting up WebSocket server in Express - Quick Revision & Summary

Choose your learning style10 modes available
Recall & Review
beginner
What is a WebSocket server?
A WebSocket server allows real-time, two-way communication between a client and server over a single, long-lived connection.
Click to reveal answer
beginner
Which Node.js package is commonly used to add WebSocket support to an Express server?
The 'ws' package is commonly used to add WebSocket support to an Express server.
Click to reveal answer
intermediate
How do you create a WebSocket server that works alongside an Express app?
You create an HTTP server from the Express app, then attach the WebSocket server to that HTTP server.
Click to reveal answer
beginner
What event do you listen for to handle new WebSocket connections?
You listen for the 'connection' event on the WebSocket server to handle new client connections.
Click to reveal answer
intermediate
Why is it important to handle errors and close events on WebSocket connections?
Handling errors and close events helps keep the server stable and frees resources when clients disconnect.
Click to reveal answer
Which method creates an HTTP server from an Express app to use with WebSocket?
Aws.createServer(app)
Bexpress.createServer()
Chttp.createServer(app)
Dapp.listenWebSocket()
Which event do you listen to on a WebSocket server to accept new clients?
Aconnect
Bconnection
Copen
Dstart
What package do you install to add WebSocket support in an Express app?
Aws
Bwebsocket-express
Cexpress-ws
Dsocket.io
How do you send a message to a connected WebSocket client?
Aclient.send('message')
Bclient.emit('message')
Cclient.write('message')
Dclient.push('message')
Why should you handle the 'close' event on a WebSocket connection?
ATo restart the server
BTo block the client
CTo send a welcome message
DTo free resources and clean up
Explain the steps to set up a WebSocket server alongside an Express app.
Think about how Express and WebSocket share the same HTTP server.
You got /5 concepts.
    Describe why WebSocket is useful compared to regular HTTP requests.
    Imagine chatting live versus sending letters.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of setting up a WebSocket server with Express?
      easy
      A. To enable real-time two-way communication between client and server
      B. To serve static files like images and CSS
      C. To handle database queries asynchronously
      D. To render HTML templates on the server

      Solution

      1. Step 1: Understand WebSocket functionality

        WebSocket allows instant two-way communication between client and server, unlike HTTP which is one-way per request.
      2. Step 2: Identify Express role

        Express is used to create the HTTP server, but WebSocket adds real-time messaging capability on top.
      3. Final Answer:

        To enable real-time two-way communication between client and server -> Option A
      4. Quick Check:

        WebSocket = real-time two-way communication [OK]
      Hint: WebSocket means instant two-way chat between client and server [OK]
      Common Mistakes:
      • Confusing WebSocket with static file serving
      • Thinking WebSocket handles database queries
      • Assuming WebSocket renders HTML
      2. Which code snippet correctly creates an HTTP server to use with WebSocket in Express?
      easy
      A. const server = http.createServer(app);
      B. const server = express();
      C. const server = new WebSocket.Server(app);
      D. const server = express.createServer();

      Solution

      1. Step 1: Recognize Express app and HTTP server creation

        Express app is created by calling express(), but to use WebSocket, you need an HTTP server wrapping the app.
      2. Step 2: Identify correct server creation method

        http.createServer(app) creates an HTTP server that can be shared with WebSocket.
      3. Final Answer:

        const server = http.createServer(app); -> Option A
      4. Quick Check:

        Use http.createServer(app) for WebSocket [OK]
      Hint: Use http.createServer(app) to share server with WebSocket [OK]
      Common Mistakes:
      • Using express.createServer() which does not exist
      • Creating WebSocket.Server with app directly
      • Assigning express() to server without HTTP wrapper
      3. Given this code snippet, what will be logged when a client sends the message 'Hello'?
      const WebSocket = require('ws');
      const http = require('http');
      const express = require('express');
      const app = express();
      const server = http.createServer(app);
      const wss = new WebSocket.Server({ server });
      wss.on('connection', ws => {
        ws.on('message', message => {
          console.log(`Received: ${message}`);
        });
      });
      server.listen(3000);
      medium
      A. No output
      B. message
      C. Error: ws.on is not a function
      D. Received: Hello

      Solution

      1. Step 1: Understand event listeners setup

        The server listens for 'connection' events, then for each connection listens for 'message' events.
      2. Step 2: Analyze message event handler

        When a message arrives, it logs 'Received: ' plus the message content.
      3. Final Answer:

        Received: Hello -> Option D
      4. Quick Check:

        Message event logs 'Received: message' [OK]
      Hint: Message event logs 'Received: ' plus message text [OK]
      Common Mistakes:
      • Expecting raw 'message' string without prefix
      • Confusing event names or handlers
      • Thinking ws.on is undefined
      4. Identify the error in this WebSocket server setup code:
      const WebSocket = require('ws');
      const express = require('express');
      const app = express();
      const server = http.createServer();
      const wss = new WebSocket.Server({ server });
      server.listen(3000);
      medium
      A. WebSocket.Server should not receive server option
      B. http module is not imported
      C. express() should be passed to WebSocket.Server
      D. server.listen should be called before creating WebSocket.Server

      Solution

      1. Step 1: Check module imports

        The code uses http.createServer() but does not import the 'http' module, causing a ReferenceError.
      2. Step 2: Verify server creation and usage

        http.createServer() requires the http module; without import, server is undefined.
      3. Final Answer:

        http module is not imported -> Option B
      4. Quick Check:

        Missing http import causes error [OK]
      Hint: Always import http before using http.createServer() [OK]
      Common Mistakes:
      • Forgetting to import http module
      • Passing express app directly to WebSocket.Server
      • Calling listen before server creation
      5. You want to broadcast a message to all connected WebSocket clients when one client sends a message. Which code snippet correctly implements this inside the 'connection' event handler?
      wss.on('connection', ws => {
        ws.on('message', message => {
          // Broadcast message to all clients
          ???
        });
      });
      hard
      A. ws.clients.forEach(client => client.send(message));
      B. wss.broadcast(message);
      C. wss.clients.forEach(client => { if(client.readyState === WebSocket.OPEN) client.send(message); });
      D. server.clients.forEach(client => client.send(message));

      Solution

      1. Step 1: Identify how to access all clients

        The WebSocket.Server instance 'wss' has a 'clients' set containing all connected clients.
      2. Step 2: Filter clients by open connection and send message

        Only clients with readyState === WebSocket.OPEN can receive messages safely.
      3. Final Answer:

        wss.clients.forEach(client => { if(client.readyState === WebSocket.OPEN) client.send(message); }); -> Option C
      4. Quick Check:

        Broadcast uses wss.clients with readyState check [OK]
      Hint: Use wss.clients and check readyState before sending [OK]
      Common Mistakes:
      • Using ws.clients which does not exist
      • Calling non-existent broadcast method
      • Accessing server.clients which is undefined
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard