🌊

【Node.js】TCP クライアントで HTTP/2 フレームを送信する

2024/10/18に公開

まず nghttpd で TLS なしの HTTP/2 サーバーを起動させる

/usr/sbin/nghttpd 8000 --no-tls -v -d ./web

次のようなクライアントコードを用意する

client.js
const net = require('node:net');

// https://gist.github.com/masakielastic/d1ddb08ef82ab6d919bd13f121c663d3
const client = net.createConnection({ port: 8000 }, () => {
  client.write(h2frames());
});

client.on('error', (err) => {
  throw err;
});

client.on('data', (data) => {
  console.log(data.toString('hex').toUpperCase());
  client.destroy();
});

実行結果

node client.js
00000604000000000000030000006400000004010000000000005B010400000001887690AA69D29AE452A9A74A6B13015DB12E0F5889A47E561CC58197000F6196DF3DBF4A05D535112A080269410AE05AB827D4C5A37F0F0D01366C96DC34FD280714CB6D0A08026940BF702FDC6DB53168DF5F87497CA589D34D1F00000600010000000148656C6C6F0A

Discussion