public static function onClose($client_id) {
if(array_key_exists('uid',$_SESSION)) {
// do something
}
}
環(huán)境: Workerman: 4.0.19, PHP :7.4.21,nginx: 1.20.1
大概邏輯如上述代碼,有時會提示: array_key_exists() expects parameter 2 to be array, null given。
有大神碰到過這問題嗎?
可能原因:
一般我們都是在onMessage里設(shè)置$_SESSION
,但是有的客戶端成功連接之后并未發(fā)送任何數(shù)據(jù)就關(guān)閉了連接,這就導(dǎo)致可能onClose回調(diào)里$_SESSION
為空,所以從這個角度看是正常的。
解決方案:
if(!empty($_SESSION) && array_key_exists('uid',$_SESSION))
非常感謝。剛才在帖里看到類似的解決辦法。不過我這里在onConnect里就設(shè)置了$_SESSION['connectTime'],onClos里有時還是會出現(xiàn)沒有$_SESSION變量的情況。