不懂为何在断开连接后还能在$_SESSION中准确的获取已断开的用户数据

liaojianfeng

我是用Gateway结合TP5学习写了下聊天室deom,
登录时在TP5使用Gateway的setSession接口存数据,
//存到session中
Gateway::setSession($client_id,);
用户断开在时GawayWworker的Events中的onClose触发方法中使用
$_SESSION获取数据居然可以准确的获取到已断开连接用户的数据,
不是断开后改用户的数据就没了吗?而且是怎么准确的获取到已断开连接用户的数据?

if (isset($_SESSION)){
    $room_id     = $_SESSION;
    $client_name = $_SESSION;
    $new_message = ;
    Gateway::sendToGroup($room_id,json_encode($new_message));
}
2262 2 0
2个回答

liaojianfeng

来个大佬解惑下,小弟不懂啊

  • 暂无评论
blogdaren

当客户端连接关闭时,客户端的$_SESSION会被清除,在此之前gateway会尝试通知并会捎带上session数据转发给BusinessWorker进程,所以执行到Events::onClose方法时仍然能拿到$_SESSION数据。

  • 暂无评论
年代过于久远,无法发表回答
🔝