titbit-httpc
v2.0.4
Published
the extension of titbit for http1 and http2 server
Downloads
24
Maintainers
Readme
titbit-httpc
titbit扩展模块,需要配合titbit使用。
此扩展可用于Web服务端同时兼容HTTP/1.1和HTTP/2协议。
titbit不支持同时兼容两种协议,当然这是可以实现的。通过使用Node.js提供的http2模块的兼容API。
因为兼容的是http和https模块的API,所以在titbit框架下,要使用针对HTTP/1.1协议设计的请求上下文。
同时兼容也要做一些判断处理,也就是在请求初始的一些处理上,要多做一些判断并设定一些属性的值。从测试来看,对性能的影响几乎可以忽略。
注意事项
因为http2的服务要基于tls,所以对http1的兼容也需要开启https。
选项中的http2不能为true,否则会使用http2的模块。
扩展初始化会自动开启http2服务并开启兼容选项。
请求上下文和协议版本有关的属性会根据请求的协议动态设定。
请尽可能都保持titbit和titbit-httpc最新版。
使用
'use strict'
const titbit = require('titbit')
const httpc = require('titbit-httpc')
//不能开启http2选项,但是必须要设置证书和密钥。
const app = new titbit({
debug: true,
cert : './rsa/localhost.cert',
key : './rsa/localhost.key'
})
let hc = new httpc()
hc.init(app)
app.get('/', async c => {
console.log(c.method, c.path, c.host, c.headers)
console.log(c.version, c.major, ' --')
c.send('ok')
})
app.run(1234)