matthiasnoback/tail-event-stream

一个简单的基于tail的事件流

v0.1.1 2022-01-25 12:57 UTC

This package is auto-updated.

Last update: 2024-08-25 19:05:31 UTC


README

一个基于tail的事件流库。

注意:我认为你不应该在真实项目中使用这个库,但它非常适合教育目的。我只在研讨会中使用它。"

入门

使用Composer安装

composer require matthiasnoback/tail-event-stream 

用法

向流中添加消息

use TailEventStream\Producer;

$streamFilePath = __DIR__ . '/var/stream.txt';

$producer = new Producer($streamFilePath);
$producer->produce('hello_world', ['Hello' => 'World!']);

stream.txt 文件每行包含一条消息

{"messageType":"hello_world","data":{"Hello":"World!"}}

使用 tail -f,消费者可以读取流中的每条消息,并且它将持续消费消息,直到你退出进程

use TailEventStream\Consumer;

$streamFilePath = __DIR__ . '/var/stream.txt';

$consumer = new Consumer($streamFilePath);

$consumer->consume(function (string $messageType, array $data) {
    // $messageType will be 'hello_world'
    // $data will  be ['Hello' => 'World!']
});

consume() 接受第二个参数,即开始的位置(或行)。