棘轮发送不适用于sleep
功能,我该如何解决?
这是我的代码:
$i = 0;
while($i < 180)
{
foreach ($this->clients as $client)
{
$client->send($res->asXML()."\0");
}
sleep(2);
$i++;
}
答案 0 :(得分:3)
使用带棘轮的sleep()不是一个好主意。相反,最好利用其现有的事件循环。
我不确定你到底想要完成什么,但这是一个基本的例子。我愿意打赌你需要重新编写代码以适应这种不同的技术。
//Start the server
$server = IoServer::factory(
new WsServer($session),
$port,
$addr
);
//Attach the loop
$server->loop->addPeriodicTimer(2, function () {
$client->send($res->asXML()."\0");
});
来源: