php - Ratchet 发送不适用于 sleep 功能

标签 php sleep ratchet

Ratchet send 无法与 sleep 功能一起使用,我该如何修复此问题?

这是我的代码:

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

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

最佳答案

将 sleep() 与 Ratchet 配合使用并不是一个好主意。相反,最好利用其现有的事件循环。

我不确定您到底想要实现什么目标,但这是一个基本示例。我敢打赌,您将需要重新编写代码以适应这种不同的技术。

//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

关于php - Ratchet 发送不适用于 sleep 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17226326/

相关文章:

php - CodeIgniter 扩展多个 Controller ?

linux - 获得更多确定性(短) sleep

Bash 以毫秒为单位休眠

symfony - 无法在 Symfony2 websocket 连接上调用函数

php - MySQL 选择 LEFT JOIN 中的最后一个图像

php - 如何使用数据库中的数据动态创建新表(php)?

php - 使用 Ratchet 创建/管理私有(private)房间?

PHP Ratchet Wamp 在发布事件中向订阅者广播

php - 更新与输入 SQL 表的问题

Java Spring Boot - 用于在后台运行的异步数据库操作的 CommandLineRunner