我是用Gateway結(jié)合TP5學(xué)習(xí)寫了下聊天室deom,
登錄時(shí)在TP5使用Gateway的setSession接口存數(shù)據(jù),
//存到session中
Gateway::setSession($client_id,);
用戶斷開在時(shí)GawayWworker的Events中的onClose觸發(fā)方法中使用
$_SESSION獲取數(shù)據(jù)居然可以準(zhǔn)確的獲取到已斷開連接用戶的數(shù)據(jù),
不是斷開后改用戶的數(shù)據(jù)就沒了嗎?而且是怎么準(zhǔn)確的獲取到已斷開連接用戶的數(shù)據(jù)?
if (isset($_SESSION)){
$room_id = $_SESSION;
$client_name = $_SESSION;
$new_message = ;
Gateway::sendToGroup($room_id,json_encode($new_message));
}
當(dāng)客戶端連接關(guān)閉時(shí),客戶端的$_SESSION會(huì)被清除,在此之前gateway會(huì)嘗試通知并會(huì)捎帶上session數(shù)據(jù)轉(zhuǎn)發(fā)給BusinessWorker進(jìn)程,所以執(zhí)行到Events::onClose方法時(shí)仍然能拿到$_SESSION數(shù)據(jù)。