A WebSocket is like a two-way phone line between a web browser and a server. It lets them talk to each other instantly without waiting for each message to finish.
Click to reveal answer
beginner
How do you create a WebSocket server in Deno?
You use Deno's standard library to listen for WebSocket connections on a port, then accept and handle messages from clients.
Click to reveal answer
intermediate
What method do you use to accept a WebSocket connection in Deno's HTTP server?
You use the `Deno.upgradeWebSocket(request)` method to upgrade an HTTP request to a WebSocket connection.
Click to reveal answer
beginner
How does a WebSocket client connect to a server in Deno?
The client uses the `WebSocket` constructor with the server URL, then listens for open, message, and close events to communicate.
Click to reveal answer
beginner
Why is WebSocket better than regular HTTP for real-time apps?
WebSocket keeps the connection open, so messages go back and forth instantly without the delay of opening new connections each time.
Click to reveal answer
Which Deno method upgrades an HTTP request to a WebSocket connection?
ADeno.upgradeWebSocket(request)
BDeno.createWebSocket()
CDeno.openSocket()
DDeno.connectWebSocket()
✗ Incorrect
Deno.upgradeWebSocket(request) is the correct method to upgrade an HTTP request to a WebSocket connection.
What event should a WebSocket client listen to for receiving messages?
Amessage
Bopen
Cconnect
Dsend
✗ Incorrect
The 'message' event is fired when the client receives data from the server.
In Deno, which module commonly provides WebSocket server utilities?
Astd/http
Bstd/ws
Cstd/fs
Dstd/net
✗ Incorrect
The std/ws module in Deno's standard library provides WebSocket utilities.
What is the main advantage of WebSocket over HTTP for communication?
AUses less memory
BRequires no server
CWorks without internet
DSupports two-way instant communication
✗ Incorrect
WebSocket supports two-way instant communication by keeping the connection open.
Which URL scheme is used to connect to a WebSocket server?
Ahttp://
Bhttps://
Cws://
Dftp://
✗ Incorrect
The 'ws://' scheme is used for WebSocket connections; 'wss://' is used for secure WebSocket.
Explain how to set up a basic WebSocket server in Deno and handle incoming messages.
Think about upgrading HTTP requests and event listeners.
You got /4 concepts.
Describe the steps a WebSocket client in Deno takes to connect and communicate with a server.
Focus on connection and event handling.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of using WebSocket in a Deno application?
easy
A. To keep a live connection open for instant two-way communication
B. To send emails from the server
C. To serve static HTML files
D. To run background tasks without user interaction
Solution
Step 1: Understand WebSocket functionality
WebSocket allows a continuous open connection between client and server for real-time data exchange.
Step 2: Compare with other options
Sending emails, serving static files, or running background tasks are unrelated to WebSocket's purpose.
Final Answer:
To keep a live connection open for instant two-way communication -> Option A
Quick Check:
WebSocket = live two-way connection [OK]
Hint: WebSocket means live chat-like connection [OK]
Common Mistakes:
Confusing WebSocket with HTTP request-response
Thinking WebSocket sends emails
Assuming WebSocket serves files
2. Which of the following is the correct way to upgrade an HTTP request to a WebSocket connection in Deno?
easy
A. const { socket, response } = WebSocket.upgrade(request);
B. const socket = new WebSocket(request);
C. const ws = new WebSocketServer(request);
D. const { socket, response } = Deno.upgradeWebSocket(request);
Solution
Step 1: Recall Deno WebSocket upgrade syntax
Deno uses Deno.upgradeWebSocket(request) to upgrade HTTP requests to WebSocket connections.
Step 2: Check other options for correctness
Options B, C, and D use incorrect constructors or methods not available in Deno's standard library.
Final Answer:
const { socket, response } = Deno.upgradeWebSocket(request); -> Option D
Deno.upgradeWebSocket is synchronous and returns socket and response correctly.
Step 2: Verify response return and event handling
The response is returned properly, and onopen event is optional, not required.
Final Answer:
No error, code is correct -> Option A
Quick Check:
Code follows correct WebSocket server pattern [OK]
Hint: upgradeWebSocket is synchronous; return response is required [OK]
Common Mistakes:
Adding unnecessary await to upgradeWebSocket
Forgetting to return response
Thinking onopen event is mandatory
5. You want to build a Deno WebSocket server that broadcasts any received message to all connected clients. Which approach correctly manages multiple clients?
hard
A. Use a single socket variable and overwrite it on each connection
B. Store all sockets in an array and loop to send messages to each socket
C. Create a new WebSocket server for each client connection
D. Send messages only to the last connected client
Solution
Step 1: Understand broadcasting concept
Broadcasting means sending a message to all connected clients, so all sockets must be stored.
Step 2: Evaluate options for managing clients
Store all sockets in an array and loop to send messages to each socket stores sockets in an array and loops to send messages, which is correct. Options A, B, and D do not support broadcasting properly.
Final Answer:
Store all sockets in an array and loop to send messages to each socket -> Option B
Quick Check:
Broadcast = send to all sockets stored [OK]
Hint: Keep all sockets in a list to broadcast messages [OK]