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

webman 和 GatewayWorker 結(jié)合 獲取webman中的session 已解決

shixia

直接貼代碼

/**
 * 當(dāng)客戶端連接上gateway完成websocket握手時(shí)觸發(fā)的回調(diào)函數(shù)。
 * @param client_id 來自注冊(cè)中心的連接ID
 * @param data 連接的相關(guān)數(shù)據(jù)
 * @return void
 */
public static function onWebSocketConnect($client_id, $data)
{
    //檢測Cookis中是否有sessionId 如果沒有則踢下線;
    //建議還可以順帶拉黑掉ip我是還在測試所以還沒寫 
    //拉黑ip建議在nginx中檢測就不要讓他轉(zhuǎn)發(fā)到webman中了
    $name = config('session.session_name');
    if (empty($data['cookie'][$name])) {
        Gateway::closeClient($client_id);
    }
            // $session 變量就是你在webman中的通過請(qǐng)求類獲取到的session類 
    // 等同于 在webman中的 $request->session(); 
    //但是也不完全一樣 如果sessionId不存在也不會(huì)自動(dòng)創(chuàng)建
    $session = new \Workerman\Protocols\Http\Session($data['cookie'][$name]);
    if (empty($session->all())) { //驗(yàn)證是否session是否有數(shù)據(jù)
        Gateway::closeClient($client_id);
    }
}
2494 3 1
3個(gè)回答

shixia

有點(diǎn)裂開,沒有辦法么

  • li914 2022-03-14

    感覺是木有辦法的,GatewayWorker 和 webman 是兩種工作協(xié)議,客戶端連接是不同的

admin

用redis,webman使用redis,然后gatewayworker也使用redis讀取就行了。

webman下手動(dòng)獲取 當(dāng)前用戶session資源集

截圖

  • Tinywan 2022-03-14

    推薦

  • shixia 2022-03-14

    我是用的redis我確實(shí)是可以獲取到數(shù)據(jù)集,但是用哪個(gè)類解析數(shù)據(jù)集是個(gè)問題

  • shixia 2022-03-14

    webman中解析數(shù)據(jù)集的類我沒找到有大佬找到的跟我說一下

  • admin 2022-03-15

    你可以在群里提,這里不方便細(xì)聊

  • admin 2022-03-15

    等群里大佬幫解決了,也來這里分享更進(jìn)下,讓其他人方便

抽不完的寂寞

拿到sessionid后,直接 new \Workerman\Protocols\Http\Session($session_id); 就能拿到session了吧。

  • shixia 2022-03-15

    不這個(gè)不是解析數(shù)據(jù)的類這個(gè)是整個(gè)seeion類其中有可能調(diào)用到了請(qǐng)求類的東西會(huì)有問題的

  • 抽不完的寂寞 2022-03-15

    看了源碼,貌似沒啥耦合,可以直接用。解析數(shù)據(jù)用的php自帶的serialize 和 unserialize函數(shù),沒有用到什么解析數(shù)據(jù)類

  • shixia 2022-03-16

    嗷嗷謝謝大佬

  • shixia 2022-03-16

    解決了寫到帖子里面了

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