如何订阅rethinkdb PHP驱动程序中的更改?

时间:2018-03-17 05:24:13

标签: php rethinkdb ratchet

我正在使用棘轮php来检查重新思考db表中所做的更改。 但即使我编辑文档,changes()也不会返回任何内容。我在这里做错了什么?

我确实参考过这篇文章:rethinkdb PHP-RQL changes

这就是我在RethinkDB中查询更改的方法

function fetchProduct() {
    $products = r\table("tableOne")->changes()->run($conn);

            foreach ($products as $product) {
               $p[] = $product;
            }

            return $p;

}

这就是我每秒通过Rachet检查更改的方法:

$count = 0;

loopy($server, $count);

function loopy($server, $count) {    

   $server->loop->addPeriodicTimer(1, 


     function ($timer) use ( &$server, &$count) {



         $count++;
            echo $count."\n";
            //test starts

            $product = fetchProduct();
            echo "<pre>";
            var_dump($product);
            //test ends

   });

}

但即使编辑文档也没有返回任何数据。它也会停止在Ratchet中执行循环。如果我删除了changes(),那么当Ratchet循环运行时,它将每秒返回表中的所有文档。但是我希望仅在进行更改时返回数据。我能做到吗?

1 个答案:

答案 0 :(得分:0)

我刚刚将迭代更改为此并且有效:

 foreach ($products as $product) {
            print_r($product);
        }