laravie / streaming
PHP的Redis异步流
v3.1.0
2020-02-06 04:10 UTC
Requires
- php: >=7.2
- laravie/predis-async: ^0.3 || ^0.4
Requires (Dev)
- phpunit/phpunit: ^8.4 || ^9.0
README
该项目允许您作为开发人员使用PHP异步监听Redis pubsub,而不是使用阻塞I/O。这是通过在内部使用 predis/predis-async
来实现的。
安装
要通过composer安装,只需在您的composer.json
文件中添加以下内容
{ "require": { "laravie/streaming": "^3.0" } }
然后从终端运行composer install
。
快速安装
上述安装也可以通过以下命令简化
composer require "laravie/streaming=^3.0"
示例
<?php $eventLoop = React\EventLoop\Factory::create(); $chat = new class implements Laravie\Streaming\Listener { /** * @return array<int, string> */ public function subscribedChannels(): array { return ['topic:*']; } /** * @param \Predis\Async\Client $redis * @return void */ public function onConnected($redis) { echo "Connected to redis!"; } /** * @param \Predis\Async\Client $redis * @return void */ public function onSubscribed($redis) { echo "Subscribed to channel `topic:*`!"; } /** * Trigger on emitted listener. * * @param object $event * @param object $pubsub * * @return void */ public function onEmitted($event, $pubsub) { // PUBLISH topic:laravel "Hello world" # DESCRIBE $event # # { # "kind": "pmessage", # "pattern": "topic:*", # "channel": "topic:laravel", # "payload": "Hello world" # } } } $client = new Laravie\Streaming\Client( ['host' => '127.0.0.1', 'port' => 6379], $eventLoop ); $client->connect($chat); $eventLoop->run();