Http2
目录
imi v1.0.20 新增支持开发 Http2 服务。
具体开发方法和 Http、WebSocket 类似。
需要除了需要加配置外,请求响应对象是使用 Http 的对象。
并且可以像开发 WebSocket 一样使用请求上下文存储数据,因为 Http2 是以全双工长连接的方式工作的。
仅支持 Swoole
配置方法
在项目 config.php
中的服务器配置中加入:
'configs' => [
'open_http2_protocol' => true,
// 下面是启用 https,如果需要就配置
// 'ssl_cert_file' => '/server.crt',
// 'ssl_key_file' => '/server.key',
],
主服务器:
// 主服务器配置
'mainServer' => [
// 指定服务器命名空间
'namespace' => 'ImiDemo\HttpDemo\MainServer',
// 服务器类型(http/WebSocket/TcpServer/UdpServer)
'type' => \Imi\Swoole\Server\Type::HTTP,
// 监听的IP地址,可选
'host' => '0.0.0.0',
// 监听的端口
'port' => 8080,
// 参考 swoole mode,可选
'mode' => SWOOLE_BASE,
// 参考 swoole sockType,可选
'sockType' => SWOOLE_SOCK_TCP,
// 服务器配置,参数用法同\Swoole\Server->set($configs)
'configs' => [
'reactor_num' => 8,
'worker_num' => 8,
'task_worker_num' => 16,
'open_http2_protocol' => true, // 启用 http2
],
],
子服务器:
[
// 子服务器(端口监听)配置
'subServers' => [
// 子服务器别名
'alias1' => [
// 指定服务器命名空间
'namespace' => 'ImiDemo\HttpDemo\MainServer',
// 服务器类型(http/WebSocket/TcpServer/UdpServer)
'type' => \Imi\Swoole\Server\Type::HTTP,
// 监听的IP地址,可选
'host' => '0.0.0.0',
// 监听的端口
'port' => 8080,
// 参考 swoole sockType,可选
'sockType' => SWOOLE_SOCK_TCP,
// 服务器配置,参数用法同\Swoole\Server->set($configs)
'configs' => [
'open_http2_protocol' => true, // 启用 http2
],
],
],
]
其它用法参考 Http、WebSocket 即可。