public static function onMessage($client_id, $message)
{
var_dump($message);// 向所有人發(fā)
while($message==1) {
$timesleep=2;
sleep($timesleep);
Gateway::sendToClient($client_id, $_SERVER['REMOTE_ADDR']);
if($message==2){
break;
var_dump($message);
}
}
}
禁止使用死循環(huán),更不要用sleep系統(tǒng)調用,改用定時器實現(xiàn)。
@6964:
根據(jù)你圖示的代碼邏輯大致是這樣的:
$worker->onMessage = function($connection, $data){
if(empty($connection->timer_id) && 1 == $data)
{
$connection->timer_id = Timer::add(2, function()use($connection){
//發(fā)送數(shù)據(jù)到客戶端
}, [], true);
}
if(isset($connection->timer_id) && 2 == $data)
{
Timer::del($connection->timer_id);
unset($connection->timer_id);
}
}