Я учусь строить сервер http2 с NodeJS 10 LTS Официальная документация .Я скопировал, вставил код серверной части в server.js и запустил на нем узел, но когда я пытаюсь соединиться с почтальоном (инструмент тестирования REST), я получаю ошибку.
const http2 = require('http2');
const fs = require('fs');
const server = http2.createSecureServer({
key: fs.readFileSync('localhost-privkey.pem'),
cert: fs.readFileSync('localhost-cert.pem')
});
server.on('error', (err) => console.error(err));
server.on('stream', (stream, headers) => {
// stream is a Duplex
stream.respond({
'content-type': 'text/html',
':status': 200
});
stream.end('<h1>Hello World</h1>');
});
server.listen(8443);
Ошибка, которую я получаю от почтальонавыглядит следующим образом:
Unknown ALPN Protocol, expected `h2` to be available.
If this is a HTTP request: The server was not configured with the `allowHTTP1` option or a listener for the `unknownProtocol` event.
Вещи, которые я пытался решить проблему:
- В соответствии с требованиями официальной документации, я создал частный и публичный сертификат (.pem).
- Я включил публичный сертификат в программное обеспечение почтальона.Так что теперь единственная ошибка, которую я получаю, - это упомянутая выше (Неизвестный протокол ALPN).
Что еще нужно для того, чтобы пример в официальных документах работал?Я не смог найти для этого онлайн-ресурсы, и все предыдущие вопросы о стековом потоке относятся к старым версиям NodeJS, когда http2 еще не был встроенным.