HTTP 2

サンプル

const http2 = require('spdy')

const express = require('express')

const app = express()

const publicPath = 'src'

app.use(express.static(publicPath))

app.get('/', function (req, res) {

// server push

push('/img/pic1.png', res, 'image/png')

push('/img/pic2.png', res, 'image/png')

push('/js/log3.js', res, 'application/javascript')

res.setHeader('Content-Type', 'text/html')

res.sendFile(__dirname + '/src/page1.html')

})

var options = {

key: fs.readFileSync('./ca/server.key'),

cert: fs.readFileSync('./ca/server.crt')

}

http2.createServer(options, app).listen(8080, () => {

console.log('Server is listening on https://127.0.0.1:8080')

})

function push(reqPath, target, type){

let content = fs.readFileSync(path.join(__dirname, publicPath, reqPath))

let stream = target.push(reqPath, {

status: 200,

method: 'GET',

request: { accept: '*/*' },

response: {

'content-type': type

}

})

stream.on('error', function() {})

stream.end(content)

}