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

【已解決】gateway-worker的onClose得不到$_SESSION數(shù)據(jù)

fantasmic

問題描述

發(fā)送消息如果不走進(jìn)判斷里關(guān)閉連接時(shí)可以獲得$_SESSION數(shù)據(jù),但進(jìn)判斷里就得不到了。

public static function onMessage($client_id, $message)
{
    $msg = json_decode($message,1);
    $_SESSION['closeFlag'] = 123;
    if(!is_array($msg)){
        Gateway::closeClient($client_id);
    }
}

public static function onClose($client_id)
{
    echo "關(guān)閉gateway :{$_SESSION['closeFlag']} \n";
}
788 1 1
1個(gè)回答

walkor 打賞

$_SESSION['closeFlag'] = 123;這種不是實(shí)時(shí)生效的,在onMessage執(zhí)行完畢后才會(huì)通知Gateway進(jìn)程進(jìn)程設(shè)置SESSION
但是因?yàn)槟阍趏nMessage里調(diào)用了Gateway::closeClient($client_id),這個(gè)接口是同步的,會(huì)立刻通知Gateway進(jìn)程關(guān)閉連接。這就導(dǎo)致onMessage執(zhí)行完畢后連接已經(jīng)不存在了,SESSION無(wú)法生效。onClose里自然拿不到對(duì)應(yīng)的SESSION。

$_SESSION['closeFlag'] = 123; 改成 Gateway::updateSession($client_id, ['closeFlag' => 123]);,這個(gè)接口調(diào)用是同步的,會(huì)立刻通知到Gateway進(jìn)程設(shè)置SESSION

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