0
0
Node.jsframework~30 mins

Long polling as fallback in Node.js - Mini Project: Build & Apply

Choose your learning style9 modes available
Long Polling as Fallback in Node.js
📖 Scenario: You are building a simple chat server that tries to use WebSocket for real-time messages. But if WebSocket is not available, it should use long polling as a fallback to keep the chat messages updated.
🎯 Goal: Create a Node.js server that supports long polling as a fallback method for clients to receive messages when WebSocket is not available.
📋 What You'll Learn
Create a message store array called messages with initial messages
Create a variable called lastMessageId to track the last message ID sent
Implement a long polling route /poll that waits for new messages
Complete the server setup to listen on port 3000
💡 Why This Matters
🌍 Real World
Long polling is used in chat apps and real-time notifications when WebSocket is not supported or blocked by firewalls.
💼 Career
Understanding fallback techniques like long polling helps backend developers build reliable real-time features that work across different network conditions.
Progress0 / 4 steps
1
Create initial message store
Create an array called messages with these exact objects: { id: 1, text: 'Hello' } and { id: 2, text: 'Welcome' }.
Node.js
Need a hint?

Use const messages = [ ... ] to create the array with two objects.

2
Add lastMessageId variable
Create a variable called lastMessageId and set it to the id of the last message in the messages array.
Node.js
Need a hint?

Use messages[messages.length - 1].id to get the last message's id.

3
Implement long polling route
Using Express, create a GET route at /poll that accepts a query parameter lastId. Inside the route, use a setInterval to check every 1 second if there are new messages with id greater than lastId. When new messages exist, respond with JSON containing those messages and clear the interval.
Node.js
Need a hint?

Use app.get('/poll', (req, res) => { ... }) and inside use setInterval to check for new messages.

4
Start the server
Add code to make the Express app listen on port 3000 and log 'Server running on port 3000' when it starts.
Node.js
Need a hint?

Use app.listen(3000, () => { console.log('Server running on port 3000') }) to start the server.