【发布时间】:2018-12-03 08:16:21
【问题描述】:
我正在跨浏览器测试 http2 流,但无法在 iOS Safari 上运行。没有苹果桌面自动取款机。
节点服务器:
const http2 = require('http2')
const fs = require('fs')
const server = http2.createSecureServer({
key: fs.readFileSync('../certs/localhost-privkey.pem'),
cert: fs.readFileSync('../certs/localhost-cert.pem')
})
const page = fs.readFileSync('full.html.br')
let middle = 300
server.on('error', (err) => console.error(err))
server.on('stream', (stream, headers) => {
stream.respond({
'content-type': 'text/HTML',
':status': 200,
'Content-Encoding': 'br'
})
stream.write(page.slice(0, middle))
stream.end(page.slice(middle, page.length - 1))
})
server.listen(8443)
在 iOS 上,它只是显示一个空白页面。在 Linux 和 Windows 上它可以正常工作。它也适用于 gzip,只有 brotli 坏了。
【问题讨论】:
-
什么版本的iOS?仅在 11 中添加:caniuse.com/#feat=brotli
-
谢谢@BarryPollard :) :) Brotli 单独有效,但 brotli + 流媒体无效。 iOS 已更新至最新版本。