libuv event loop for Workerman
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
CismonX 3d3f6d6b8b
5 years ago
src archive 5 years ago
.gitignore archive 5 years ago
LICENSE archive 5 years ago archive 5 years ago
composer.json archive 5 years ago



libuv 是一个事件驱动的异步 I/O 库,最初是为 Node.js 开发的。随后也在 Python、Julia 等语言中被应用。

php-uv 是对 libuv 的封装,使其可以在 PHP 中被应用。

本项目将 php-uv 的 event-loop 应用于 Workerman,从而可以在基于 Workerman 的项目中利用 php-uv 提供的特性。


  1. 使用包管理器安装 libuv 和 libuv-devel(可能需要手动添加源)。

  2. 使用 pecl 安装 php-uv(也可以从 pecl 官网或 GitHub 仓库下载源码后手动编译)。

  3. 使用 composer 加载Workerman\\Events\\Uv

composer require cismonx/workerman-uv
  1. 在项目中使用 Workerman\Events\Uv 提供的 event-loop。如下:
Worker::$eventLoopClass = '\\Workerman\\Events\\Uv';


  1. 使用 libuv 的 event-loop 后,Workerman 的子进程处理 SIGINT 事件时会 exit 2 (no such file or directory),这个问题待解决。

  2. 如果需要使用 libuv 的多线程特性,需要线程安全(ZTS)的 PHP。

  3. php-uv 目前处于 Beta 阶段,其稳定性不能保证。请避免将其应用于生产环境。