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