javascript / expert
Snippet
Native HTTP/2 Multiplexing and Session Framing with node:http2
Node.js core node:http2 provides low-level multiplexed stream management using native HTTP/2 pseudo-headers and session frame handles.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import http2 from 'node:http2';const server = http2.createServer();server.on('stream', (stream, headers) => {const path = headers[':path'];if (path === '/events') {stream.respond({':status': 200,'content-type': 'application/json',});stream.end(JSON.stringify({ event: 'ping', timestamp: Date.now() }));}});server.listen(8443);
nodejs
Breakdown
1
import http2 from 'node:http2';
Imports Node.js built-in HTTP/2 engine.
2
const server = http2.createServer();
Instantiates an unencrypted HTTP/2 server instance.
3
server.on('stream', (stream, headers) => {
Attaches event listener for incoming HTTP/2 multiplexed streams.
4
const path = headers[':path'];
Extracts the HTTP/2 pseudo-header :path.
5
if (path === '/events') {
Filters stream handling for target route.
6
stream.respond({
Sends HTTP/2 headers using pseudo-header status mappings.
7
':status': 200,
Sets standard HTTP status pseudo-header.
8
'content-type': 'application/json',
Sets response Content-Type header.
9
});
Closes response headers block definition.
10
stream.end(JSON.stringify({ event: 'ping', timestamp: Date.now() }));
Flushes final data payload frame and closes stream state.
11
}
Closes route conditional block.
12
});
Closes stream event handler closure.
13
server.listen(8443);
Binds HTTP/2 server to port 8443.