Challenge - 5 Problems
WebSocket Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate2:00remaining
What is the output when a client sends 'hello' to this WebSocket endpoint?
Consider this FastAPI WebSocket endpoint code. What will the client receive after sending the message 'hello'?
FastAPI
from fastapi import FastAPI, WebSocket app = FastAPI() @app.websocket('/ws') async def websocket_endpoint(websocket: WebSocket): await websocket.accept() data = await websocket.receive_text() await websocket.send_text(f'Message received: {data}') await websocket.close()
Attempts:
2 left
💡 Hint
Look at what the server sends back after receiving the message.
✗ Incorrect
The server accepts the connection, receives the text 'hello', then sends back 'Message received: hello' before closing.
📝 Syntax
intermediate2:00remaining
Which option correctly defines a FastAPI WebSocket endpoint?
Select the option that correctly defines a WebSocket endpoint in FastAPI without syntax errors.
Attempts:
2 left
💡 Hint
Check for async keyword and parameter type.
✗ Incorrect
Option A correctly uses async def with a typed websocket parameter and awaits calls. Others miss async, parameter type, or websocket parameter.
❓ state_output
advanced2:00remaining
What is the value of 'count' after 3 messages are received in this WebSocket endpoint?
Given this WebSocket endpoint, what will be the value of 'count' after the client sends 3 messages?
FastAPI
from fastapi import FastAPI, WebSocket app = FastAPI() count = 0 @app.websocket('/counter') async def counter(websocket: WebSocket): global count await websocket.accept() for _ in range(3): await websocket.receive_text() count += 1 await websocket.send_text(f'Count is {count}') await websocket.close()
Attempts:
2 left
💡 Hint
Look at how 'count' is updated inside the loop.
✗ Incorrect
The global 'count' is incremented by 1 for each of the 3 messages, so final value is 3.
🔧 Debug
advanced2:00remaining
Which option correctly describes the behavior when connecting to this WebSocket endpoint?
Identify which option correctly describes the behavior when a client connects to this WebSocket endpoint.
FastAPI
from fastapi import FastAPI, WebSocket app = FastAPI() @app.websocket('/echo') async def echo(websocket: WebSocket): await websocket.accept() while True: data = await websocket.receive_text() await websocket.send_text(data)
Attempts:
2 left
💡 Hint
Check if the server accepts connection and awaits properly.
✗ Incorrect
Option B describes the correct behavior of this code: server accepts, echoes messages in a loop.
🧠 Conceptual
expert2:00remaining
What happens if you omit 'await websocket.accept()' in a FastAPI WebSocket endpoint?
In FastAPI, what is the effect of not calling 'await websocket.accept()' inside a WebSocket endpoint function?
Attempts:
2 left
💡 Hint
Think about the WebSocket handshake process.
✗ Incorrect
Without calling 'await websocket.accept()', the WebSocket handshake is not completed, so the client connection is rejected.