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

GatewayWorker session讀取失敗

leaboy

[attach]539[/attach]

如圖:
1的時(shí)候會寫入session,打印出來是有數(shù)據(jù)的
2的時(shí)候讀取session就為null了

這種情況偶爾會出現(xiàn),多次出現(xiàn)在服務(wù)重新啟動后,不知道是什么情況

但是正常的websocket連接沒有這個問題

3686 7 0
7個回答

walkor 打賞

stream_socket_client是連的workemran么?
沒看到哪里有操作session,
如何知道session沒了?

  • 暫無評論
leaboy

這個是其它項(xiàng)目的client端

服務(wù)端代碼:

[attach]541[/attach]

[attach]542[/attach]

上面的1會執(zhí)行online方法,2會執(zhí)行filter方法

  • 暫無評論
walkor 打賞

session 存儲是異步的,有輕微延遲,如果客戶端瞬間發(fā)送多個請求,請求間有session依賴,可能會遇到上個請求設(shè)置的session,下個請求讀不到的情況。

可以用Gateway::getSession來同步獲取session解決這個問題。
$_SESSION = Gateway::getSession($client_id);

  • 暫無評論
leaboy

好的,我試下

  • 暫無評論
leaboy
    $_SESSION = Gateway::getSession($client_id);    // 同步session
    echo 'filter('.$client_id.'): ' . json_encode($_SESSION), PHP_EOL;

filter方法改成這樣取到的$_SESSION就一直是null了

  • 暫無評論
leaboy

websocket的正常請求不管加不Gateway::getSession()都沒問題

  • 暫無評論
leaboy

[attach]543[/attach]
已解決,client端最后一次請求加上一個fgets就好了,具體原因不詳(開始以為是請求后馬上close了導(dǎo)致session被清除,后來試著加了sleep再close也不行)

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