Bird
Raised Fist0
Computer Networksknowledge~20 mins

WebSockets for real-time communication in Computer Networks - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
WebSocket Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
How WebSockets differ from HTTP in real-time communication

Which statement best explains how WebSockets differ from traditional HTTP for real-time communication?

AWebSockets only allow the server to send data, while HTTP allows both client and server to send data.
BWebSockets establish a persistent connection allowing two-way communication, while HTTP opens a new connection for each request-response cycle.
CWebSockets use the UDP protocol, whereas HTTP uses TCP, making WebSockets faster for real-time data.
DWebSockets require a new handshake for every message sent, unlike HTTP which maintains a single handshake.
Attempts:
2 left
💡 Hint

Think about how connections are maintained during communication.

📋 Factual
intermediate
2:00remaining
WebSocket handshake process

What is the purpose of the WebSocket handshake in establishing a connection?

ATo encrypt the data transmitted over the WebSocket connection.
BTo authenticate the client using username and password before opening the connection.
CTo upgrade an existing HTTP connection to a WebSocket connection by agreeing on protocol details.
DTo close the connection after data transfer is complete.
Attempts:
2 left
💡 Hint

Consider how WebSockets start from an HTTP connection.

🚀 Application
advanced
2:00remaining
Choosing WebSockets for a chat application

You are building a chat app that requires instant message delivery between users. Why is using WebSockets a better choice than HTTP polling?

AWebSockets reduce latency by maintaining an open connection, allowing instant message delivery without repeated requests.
BWebSockets guarantee message delivery order, while HTTP polling does not.
CWebSockets use less bandwidth because they compress messages by default, unlike HTTP polling.
DWebSockets automatically store messages on the server for offline users, unlike HTTP polling.
Attempts:
2 left
💡 Hint

Think about how often data is sent and how connections are managed.

🔍 Analysis
advanced
2:00remaining
Impact of network interruptions on WebSocket connections

What happens to an active WebSocket connection if the network temporarily disconnects and then reconnects?

AThe WebSocket connection closes and must be re-established by the client after reconnection.
BThe WebSocket automatically resumes without any action needed from client or server.
CThe server buffers all messages during disconnection and sends them once the client reconnects.
DThe connection switches to HTTP polling mode until the network stabilizes.
Attempts:
2 left
💡 Hint

Consider how persistent connections behave when interrupted.

❓ Reasoning
expert
2:00remaining
Security considerations with WebSockets

Which of the following is the most important security measure when using WebSockets in a public web application?

ADisable all cookies to prevent session hijacking over WebSockets.
BUse HTTP instead of WebSockets to avoid security risks.
COnly allow WebSocket connections from localhost to avoid external attacks.
DUse Secure WebSockets (wss://) to encrypt data and prevent eavesdropping.
Attempts:
2 left
💡 Hint

Think about how data travels over the network and how to protect it.

Practice

(1/5)
1. What is the main advantage of using WebSockets for communication between a client and a server?
easy
A. They only allow one-way communication from server to client.
B. They allow real-time, two-way communication without repeatedly opening new connections.
C. They require a new connection for every message sent.
D. They work only for static web pages without interaction.

Solution

  1. Step 1: Understand WebSocket communication

    WebSockets keep a single connection open for continuous two-way data exchange.
  2. Step 2: Compare with other methods

    Unlike HTTP requests, WebSockets avoid opening new connections for each message.
  3. Final Answer:

    They allow real-time, two-way communication without repeatedly opening new connections. -> Option B
  4. Quick Check:

    Two-way real-time communication = They allow real-time, two-way communication without repeatedly opening new connections. [OK]
Hint: WebSockets keep one open connection for instant two-way chat [OK]
Common Mistakes:
  • Thinking WebSockets only send data one way
  • Confusing WebSockets with HTTP polling
  • Assuming new connection per message
2. Which of the following is the correct way to create a WebSocket connection in JavaScript?
easy
A. const socket = new WebSocket('http://example.com');
B. const socket = WebSocket.connect('ws://example.com');
C. const socket = WebSocket('https://example.com');
D. const socket = new WebSocket('ws://example.com');

Solution

  1. Step 1: Identify correct WebSocket URL scheme

    WebSocket URLs start with ws:// or wss:// for secure connections.
  2. Step 2: Check JavaScript syntax

    The correct syntax uses new WebSocket(url) with the ws:// scheme.
  3. Final Answer:

    const socket = new WebSocket('ws://example.com'); -> Option D
  4. Quick Check:

    WebSocket URL starts with ws:// = const socket = new WebSocket('ws://example.com'); [OK]
Hint: WebSocket URLs start with ws:// or wss:// [OK]
Common Mistakes:
  • Using http:// or https:// instead of ws://
  • Calling WebSocket without new keyword
  • Using incorrect method like WebSocket.connect
3. Consider this JavaScript code snippet using WebSocket:
const socket = new WebSocket('ws://example.com');
socket.onopen = () => socket.send('Hello');
socket.onmessage = (event) => console.log(event.data);

What will happen when the connection opens?
medium
A. The message 'Hello' is sent to the server, and incoming messages are logged.
B. The message 'Hello' is logged to the console, but nothing is sent.
C. An error occurs because send cannot be called on open event.
D. Nothing happens until the server sends a message first.

Solution

  1. Step 1: Analyze the onopen event handler

    When the WebSocket connection opens, it sends the string 'Hello' to the server.
  2. Step 2: Analyze the onmessage event handler

    Any message received from the server is logged to the console.
  3. Final Answer:

    The message 'Hello' is sent to the server, and incoming messages are logged. -> Option A
  4. Quick Check:

    Send on open + log messages = The message 'Hello' is sent to the server, and incoming messages are logged. [OK]
Hint: onopen sends, onmessage logs incoming data [OK]
Common Mistakes:
  • Thinking send cannot be called on open
  • Confusing logging sent message vs received message
  • Assuming no action until server sends first
4. A developer wrote this code to open a WebSocket and send a message:
const socket = new WebSocket('ws://example.com');
socket.send('Hi');

What is the problem with this code?
medium
A. The send method is called before the connection is open.
B. The URL should start with https:// instead of ws://.
C. The WebSocket constructor requires a callback function.
D. The message 'Hi' must be sent as an object, not a string.

Solution

  1. Step 1: Check WebSocket connection timing

    The send method must be called only after the connection is open.
  2. Step 2: Identify error in code

    Calling send immediately after creating the socket tries to send before connection is ready, causing an error.
  3. Final Answer:

    The send method is called before the connection is open. -> Option A
  4. Quick Check:

    send before open causes error = The send method is called before the connection is open. [OK]
Hint: Wait for onopen event before sending messages [OK]
Common Mistakes:
  • Using https:// instead of ws:// for WebSocket URL
  • Expecting constructor to take a callback
  • Sending non-string data without serialization
5. You want to build a live sports score dashboard using WebSockets. Which approach best ensures the dashboard updates instantly and efficiently?
hard
A. Open a new WebSocket connection for each score update.
B. Use HTTP polling every 5 seconds to fetch the latest scores.
C. Open a WebSocket connection once and update scores as messages arrive.
D. Send all scores once when the page loads and never update.

Solution

  1. Step 1: Understand real-time update needs

    A live dashboard needs instant updates without delay or repeated connection overhead.
  2. Step 2: Evaluate options for efficiency

    Opening one WebSocket connection and receiving updates as messages is efficient and real-time.
  3. Step 3: Eliminate less efficient methods

    Polling causes delay and overhead; opening many connections wastes resources; sending once misses updates.
  4. Final Answer:

    Open a WebSocket connection once and update scores as messages arrive. -> Option C
  5. Quick Check:

    Single open connection + live updates = Open a WebSocket connection once and update scores as messages arrive. [OK]
Hint: One open WebSocket connection handles all live updates efficiently [OK]
Common Mistakes:
  • Using polling instead of WebSocket for real-time
  • Opening multiple connections unnecessarily
  • Not updating after initial data load
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