javascript / expert
Snippet
Natives HTTP/2-Multiplexing und Sitzungs-Framing mit node:http2
Das Node.js Core-Modul node:http2 bietet Low-Level multiplexiertes Stream-Management mittels nativer HTTP/2-Pseudo-Header und Sitzungs-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
Erklärung
1
import http2 from 'node:http2';
Importiert die in Node.js integrierte HTTP/2-Engine.
2
const server = http2.createServer();
Instanziiert eine unverschlüsselte HTTP/2-Serverinstanz.
3
server.on('stream', (stream, headers) => {
Fügt Event-Listener für eingehende multiplexierte HTTP/2-Streams hinzu.
4
const path = headers[':path'];
Extrahiert den HTTP/2-Pseudo-Header :path.
5
if (path === '/events') {
Filtert die Stream-Behandlung für die Ziel-Route.
6
stream.respond({
Sendet HTTP/2-Header unter Verwendung von Pseudo-Header Statuszuordnungen.
7
':status': 200,
Setzt den Standard HTTP-Status Pseudo-Header.
8
'content-type': 'application/json',
Setzt den Content-Type-Header der Antwort.
9
});
Schließt die Definition des Antwort-Header-Blocks.
10
stream.end(JSON.stringify({ event: 'ping', timestamp: Date.now() }));
Übermittelt den finalen Datenframe und schließt den Stream-Status.
11
}
Schließt den bedingten Routen-Block.
12
});
Schließt die Stream-Eventhandler-Closure.
13
server.listen(8443);
Bindet den HTTP/2-Server an Port 8443.