werkint / reactphp-stream
v0.4.4
2016-08-22 09:51 UTC
Requires
- php: >=5.3.8
- evenement/evenement: ^2.0|^1.0
Requires (Dev)
- clue/stream-filter: ~1.2
- react/event-loop: ^0.4|^0.3
- react/promise: ^2.0|^1.0
Suggests
- react/event-loop: ^0.4
- react/promise: ^2.0
- dev-master
- v0.4.4
- v0.4.1
- v0.4.0
- 0.3.x-dev
- v0.3.4
- v0.3.3
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.6
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.1
- v0.1.0
- dev-no-full-drain
- dev-inject-buffer
- dev-buffer-close
- dev-immediate-writes
- dev-composite-close
- dev-fu-feof
- dev-close-buffer-once
- dev-no-bufferedsink
- dev-nbio
- dev-no-end
- dev-changelog
This package is not auto-updated.
Last update: 2019-02-20 19:06:05 UTC
README
基本可读和可写流接口,支持管道传输。
为了使事件循环更容易使用,该组件引入了流的概念。它们与PHP本身中的流非常相似,但接口更适合异步I/O。
主要提供可读和可写流的接口,以及基于文件描述符的实现,具有内存写缓冲区。
此组件依赖于événement
,它是EventEmitter
的实现。
可读流
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)
:可选地将一些最终数据写入流,清空缓冲区,然后关闭它。
用法
$loop = React\EventLoop\Factory::create(); $source = new React\Stream\Stream(fopen('omg.txt', 'r'), $loop); $dest = new React\Stream\Stream(fopen('wtf.txt', 'w'), $loop); $source->pipe($dest); $loop->run();