是否有PHP扩展(稳定性无关紧要)允许直接epoll,kqueue,/ dev / poll轮询功能而无需通过libevent或libev扩展?
答案 0 :(得分:2)
您没有指定扩展应支持的体系结构。但是,如果只选择Linux,则可以使用inotify,其中:
php-inotifytools是另一种可能的扩展。
以下an extensive, self-contained article显示了inotify如何工作以及如何使用C API。
此外,根据Robert Love的文章Intro to inotify的结论判断,inotify有一个非常好的表现:
inotify是一个简单但功能强大的文件更改通知系统 直观的用户界面,出色的性能,支持众多 不同的事件和众多的功能。 inotify目前正在使用中 各种项目,包括Beagle,一种先进的桌面索引 系统和GAM,FAM的替代品。
Robert Love是一位备受尊敬的Linux内核黑客,也是参考书Linux Kernel Development的作者(我碰巧拥有)。
答案 1 :(得分:0)
现在,libevent将成为PHP可以获得的最稳定的东西。它支持epoll作为后端。
还有experimental extension for libev。它不如libevent那么稳定,但有一个更好的OO API。
答案 2 :(得分:0)
有一个PECL扩展提供了Event
和EventBase
类,它们可以处理好几件事,也可以使用epoll
。
请参阅:http://www.php.net/manual/en/event.examples.php
很抱歉,我无法提供您在链接上找到的示例,因为我还没有使用此示例。
EventBase类表示libevent的事件基础结构。它拥有 一组事件,可以轮询以确定哪些事件是活动的。
每个事件库都有一个方法,或者用于确定的后端 哪些活动准备好了。公认的方法是:选择,民意调查, epoll,kqueue,devpoll,evport和win32。
配置要使用的事件库,或避免使用特定的后端EventConfig 可以使用类。