thruster/stream

Thruster 流组件

1.2.0 2016-01-24 17:33 UTC

This package is auto-updated.

Last update: 2024-09-14 02:48:15 UTC


README

[最新版本] (https://github.com/ThrusterIO/stream/releases) [软件许可] (LICENSE) [构建状态] (https://travis-ci.org/ThrusterIO/stream) [代码覆盖率] (https://scrutinizer-ci.com/g/ThrusterIO/stream) [质量评分] (https://scrutinizer-ci.com/g/ThrusterIO/stream) [总下载量] (https://packagist.org.cn/packages/thruster/stream)

[电子邮件] (mailto:team@thruster.io)

Thruster Stream 组件。

基本的可读和可写流接口,支持管道操作。

为了使事件循环更容易使用,此组件引入了流的概念。它们与PHP本身中的流非常相似,但接口更适合异步I/O。

主要提供可读和可写流的接口,以及基于文件描述符的实现,带有内存写入缓冲区。

安装

通过 Composer

$ composer require thruster/stream

可读流

EventEmitter 事件

  • data:每当从源读取数据时都会触发。
  • end:当源到达 eof 时触发。
  • error:当发生错误时触发。
  • close:当连接关闭时触发。

方法

  • isReadable():检查流是否仍然处于可读状态。当连接结束、关闭或发生错误时,流变为不可读。
  • pause():从事件循环中移除数据源文件描述符。这允许您限制传入的数据。
  • resume():在 pause() 之后重新附加数据源。
  • pipe(WritableStreamInterface $dest, array $options = []):将此可读流连接到可写流。自动将所有传入数据发送到目的地。根据目的地处理能力自动限制。

可写流

EventEmitter 事件

  • drain:如果之前写缓冲区已满并且现在可以接受更多数据时触发。
  • error:当发生错误时触发。
  • close:当连接关闭时触发。
  • pipe:当可读流被 pipe() 连接到此流时触发。

方法

  • isWritable():检查流是否仍然可写。在发生错误或关闭后不能写入。
  • write($data):将一些数据写入流。如果流无法处理,应缓冲数据或触发一个 error 事件。如果内部缓冲区在添加 $data 后已满,则 write 应返回 false,表示调用者应停止发送数据,直到缓冲区 drain 为止。
  • end($data = null):可选地写入一些最终数据到流中,清空缓冲区,然后关闭它。

测试

$ composer test

贡献

请参阅 CONTRIBUTINGCONDUCT 了解详情。

许可证

请参阅 许可证文件 获取更多信息。