在?onWorkerStart 里面定義了 個(gè)全局的? global $_downTimer;
?
然后在 Timer 里面倒計(jì)時(shí)? 代碼如下
global $_downTimer;
$_downTimer = 60;
$_timer = Timer::add(1, function () use (&$_timer,&$_downTimer) {
if($_downTimer == 0){
Timer::del($_timer);
}else{
Gateway::sendToGroup(, json_encode());
--$_downTimer;
}
});
運(yùn)行 :php artisan wk start?
然后進(jìn)入房間后 timer 發(fā)送到客戶端 是正常的 按每秒去遞減,
之后我退出房間 在進(jìn)去 ,那么問(wèn)題來(lái)了:
Workerman 推送到客戶端的 時(shí)間 會(huì)每秒打印 60,59,58 一次性可以推送3秒 或者更多過(guò)來(lái)? ,導(dǎo)致倒計(jì)時(shí)很快就走完了。
?
?
?
因?yàn)殚_(kāi)了多個(gè)進(jìn)程啊,比如你開(kāi)了3個(gè)進(jìn)程,3個(gè)進(jìn)程都定時(shí)向客戶端發(fā),那就一次推3個(gè)過(guò)來(lái)了
不是進(jìn)程問(wèn)題,我只開(kāi)了4個(gè)進(jìn)程,我只在0號(hào)運(yùn)行了 ,如果是進(jìn)程問(wèn)題,我第一次進(jìn)來(lái)的時(shí)候?yàn)槭裁吹褂?jì)時(shí)沒(méi)問(wèn)題,退出一次在進(jìn)去 就會(huì)每秒推8,7,5,4 秒過(guò)來(lái),然后再退出再進(jìn)房間,就會(huì)一秒推8,7,6,5,4,3,2,1 感覺(jué)是乘以2