Performance: Server-Sent Events alternative
This affects how quickly and efficiently real-time data updates reach the browser, impacting interaction responsiveness and page load.
import { Server } from 'socket.io'; import http from 'http'; const server = http.createServer(); const io = new Server(server, { cors: { origin: '*' } }); io.on('connection', (socket) => { const interval = setInterval(() => { socket.emit('time', new Date().toISOString()); }, 1000); socket.on('disconnect', () => clearInterval(interval)); }); server.listen(3000);
const http = require('http'); http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive' }); setInterval(() => { res.write(`data: ${new Date().toISOString()}\n\n`); }, 1000); }).listen(3000);
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Server-Sent Events | Low per update | 1 reflow per update | Moderate paint | [!] OK |
| WebSocket | Low per update | 1 reflow per update | Moderate paint | [OK] Good |
const WebSocket = require('ws');
const server = new WebSocket.Server({ port: 8080 });
server.on('connection', socket => {
socket.on('message', message => {
console.log(`Received: ${message}`);
socket.send(`Echo: ${message}`);
});
});const WebSocket = require('ws');
const server = new WebSocket.Server({ port: 8080 });
server.on('connection', socket => {
socket.on('message', (msg) => {
socket.send('Received: ' + message);
});
});Pass the test and this pattern moves unknown