您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman的http服务-session管理-更改session存储引擎
发布时间:2021-12-09 21:33:13编辑:雪饮阅读()
说明
workerman从4.x版本开始加强了HTTP服务的支持。引入了请求类、响应类、session类以及SSE。如果你想使用workerman的HTTP服务,强烈推荐使用workerman4.x或者以后的更高版本。
注意以下都是workerman4.x版本的用法,不兼容workerman3.x。
更改session存储引擎
workerman为session提供了文件存储引擎和redis存储引擎。默认使用文件存储引擎。如果想更改为redis存储引擎,请参考如下代码。
实例:
<?php
use Workerman\Worker;
use Workerman\Protocols\Http\Session;
use Workerman\Protocols\Http\Session\RedisSessionHandler;
use Workerman\Connection\TcpConnection;
use Workerman\Protocols\Http\Request;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('http://0.0.0.0:8080');
// redis配置
$config = [
'host' => '127.0.0.1', // 必选参数
'port' => 6379, // 必选参数
'timeout' => 2, // 可选参数
'auth' => '123456', // 可选参数
'database' => 1, // 可选参数
'prefix' => 'session_' // 可选参数
];
// 使用 Workerman\Protocols\Http\Session::handlerClass方法来更改session底层驱动类
Session::handlerClass(RedisSessionHandler::class, $config);
$worker->onMessage = function(TcpConnection $connection, Request $request)
{
$session = $request->session();
$session->set('somekey', rand());
$connection->send($session->get('somekey'));
};
Worker::runAll();
?>
实例运行:
[root@localhost workerman]# /usr/local/php734/bin/php -c /usr/local/php734/lib/php/php.ini start.php start &
[2] 8893
[root@localhost workerman]# Workerman[start.php] start in DEBUG mode
----------------------------------------- WORKERMAN -----------------------------------------
Workerman version:4.0.22 PHP version:7.3.4
------------------------------------------ WORKERS ------------------------------------------
proto user worker listen processes status
tcp root none http://0.0.0.0:8080 1 [OK]
---------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
当有http客户端多次请求后可以在redis中如上面配置的索引为1的数据库中就能看到session存储于redis中了:
[root@localhost workerman]# redis-cli
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "session_afea9c1c816cd8413d02d099"
2) "session_685e1f28816cd841061bef97"
3) "session_01c38c20816cd8416adf9d16"
127.0.0.1:6379[1]>
127.0.0.1:6379[1]>
http客户端请求:
[root@localhost ~]# elinks http://127.0.0.1:8080 --dump
303720251
关键字词:workerman,http,session,session管理,更改session存储引擎
相关文章
- workerman的http服务-session会话-判断对应session数
- workerman的http服务-session会话-删除所有session数
- workerman的http服务-session会话-获取并删除session
- workerman的http服务-session会话-删除session数据
- workerman的http服务-session会话-存储session
- workerman的http服务-session会话-获取session中某个
- workerman的http服务-session会话-获取所有session数
- workerman的http服务-session会话-获取session对象
- workerman的http服务-响应 - 发送http chunk数据(有点
- workerman的http服务-响应-重定向