目前用戶打開(kāi)單一頁(yè)面后刷新時(shí)則狀態(tài)在線-斷開(kāi)-在線
,感覺(jué)這樣太費(fèi)事.
期望的效果是用戶斷開(kāi)時(shí),做個(gè)一次性定時(shí)任務(wù),而在10s內(nèi)的再次在線則進(jìn)行刪除該定時(shí)器.
但問(wèn)題是Timer類似乎在$socket->on('disconnect',
這樣中無(wú)法使用.
那么請(qǐng)教該如何實(shí)現(xiàn)?
需求如:
$socket->on('login', function ($uid)use($socket){
//存在一次性定時(shí)任務(wù)則刪除
});
$socket->on('disconnect', function ($uid)use($socket){
if(--$uidMap <= 0){
//創(chuàng)建一個(gè)10秒的一次性定時(shí)任務(wù),以便在用戶離開(kāi)了10秒后仍未接入時(shí)執(zhí)行.
};
});
估計(jì)題主沒(méi)加命名空間,這樣加
$socket->on('disconnect', function () {
Workerman\Lib\Timer::add(...);
});