国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

GatewayWorker中,無法在onClose回調(diào)函數(shù)里獲取到$_SESSION變量

江月閑談
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。
有大神碰到過這問題嗎?

2204 1 0
1個回答

phpcreeper

可能原因:
一般我們都是在onMessage里設(shè)置$_SESSION,但是有的客戶端成功連接之后并未發(fā)送任何數(shù)據(jù)就關(guān)閉了連接,這就導(dǎo)致可能onClose回調(diào)里$_SESSION為空,所以從這個角度看是正常的。
解決方案:

if(!empty($_SESSION) && array_key_exists('uid',$_SESSION))
  • 江月閑談 2021-08-02

    非常感謝。剛才在帖里看到類似的解決辦法。不過我這里在onConnect里就設(shè)置了$_SESSION['connectTime'],onClos里有時還是會出現(xiàn)沒有$_SESSION變量的情況。

  • 江月閑談 2021-08-02

    不知道是怎么回事

  • phpcreeper 2021-08-03

    在onConnect里設(shè)置的話的應(yīng)該不會發(fā)生這種問題的、檢查下業(yè)務(wù)代碼、寫下session的日志跟蹤下。

年代過于久遠(yuǎn),無法發(fā)表回答
??