棘轮发送不兼容睡眠功能

时间:2013-06-21 01:22:47

标签: php sleep ratchet

棘轮发送不适用于sleep功能,我该如何解决?

这是我的代码:

$i = 0;
while($i < 180)
{
    foreach ($this->clients as $client)
    {

       $client->send($res->asXML()."\0");
    }
    sleep(2);
    $i++;
}

1 个答案:

答案 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");
});

来源:

  1. https://github.com/reactphp/event-loop
  2. https://groups.google.com/forum/#!msg/ratchet-php/MsTqELDoBb0/lQ_J8aR2eUcJ