GatewayWorker中,无法在onClose回调函数里获取到$_SESSION变量

0
public static function onClose($client_id) {
if(array_key_exists('uid',$_SESSION)) {
// do something
}
}

环境: Workerman: 4.0.19, PHP :7.4.21,nginx: 1.20.1
大概逻辑如上述代码,有时会提示: array_key_exists() expects parameter 2 to be array, null given。
有大神碰到过这问题吗?

已邀请:

blogdaren - 专注C编程、PHP内核、LINUX、VIM【http://www.phpcreeper.com】

赞同来自:

可能原因:
一般我们都是在onMessage里设置$_SESSION,但是有的客户端成功连接之后并未发送任何数据就关闭了连接,这就导致可能onClose回调里$_SESSION为空,所以从这个角度看是正常的。
解决方案:


if(!empty($_SESSION) && array_key_exists('uid',$_SESSION))

要回复问题请先登录注册