Download the PHP package reactphp-x/tunnel-stream without Composer
On this page you can find all versions of the php package reactphp-x/tunnel-stream. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package tunnel-stream
Tunnel Stream
一个基于 ReactPHP 的流式隧道通信库,支持在不同进程间传输数据流和执行闭包函数。
特性
- 🚀 支持进程间双向数据流传输
- 🔄 支持序列化闭包函数在不同进程间执行
- 📦 基于 MessagePack 的高效二进制协议
- 💓 内置心跳检测机制
- ⚠️ 完整的错误处理和事件通知
- ⏱️ 支持异步 Promise 操作
- 🔒 支持闭包函数序列化安全控制
安装
快速开始
1. 创建隧道流
2. 执行远程闭包
3. 心跳检测
进阶用法
子进程通信
在父子进程间建立隧道流通信是一个常见的使用场景。以下是一个完整的示例:
主进程 (process.php)
子进程 (child_process_init.php)
最佳实践
1. 错误处理
- 始终监听 error 事件
- 在关键操作处添加错误处理逻辑
- 使用 try-catch 包装可能抛出异常的代码
- 实现优雅的错误恢复机制
2. 资源管理
- 及时关闭不再使用的流
- 使用 close 事件清理相关资源
- 避免内存泄漏
- 实现超时机制
3. 性能优化
- 合理使用缓冲区大小
- 避免过大的数据包
- 适时使用心跳检测保持连接
- 使用异步操作处理耗时任务
4. 安全考虑
- 控制闭包函数的执行权限
- 验证数据来源
- 限制资源使用
- 实现访问控制
API 文档
TunnelStream 类
构造函数
参数说明:
$readStream: 可读流接口$writStream: 可写流接口$canCallback: 是否允许执行回调函数
方法
run
执行远程闭包函数,返回一个双向流。
ping
发送心跳包并等待响应。
参数:
$timeout: 超时时间(秒)
close
关闭所有流。
测试
运行测试套件:
依赖
- react/stream: ^1.4
- laravel/serializable-closure: ^2.0
- ramsey/uuid: ^4.7
- rybakit/msgpack: ^0.9.1
- react/promise: ^3.2
- react/promise-timer: ^1.11
贡献
欢迎提交 Pull Request 和 Issue。
许可证
MIT License
All versions of tunnel-stream with dependencies
PHP Build Version
Package Version
Requires
react/stream Version
^1.4
laravel/serializable-closure Version ^2.0
ramsey/uuid Version ^4.7
rybakit/msgpack Version ^0.9.1
react/promise Version ^3.2
react/promise-timer Version ^1.11
laravel/serializable-closure Version ^2.0
ramsey/uuid Version ^4.7
rybakit/msgpack Version ^0.9.1
react/promise Version ^3.2
react/promise-timer Version ^1.11
The package reactphp-x/tunnel-stream contains the following files
Loading the files please wait ...