Libevent是一个用C语言编写的轻量级开源高性能I/O框架,支持多种I/O多路复用技术:epoll、poll、dev/poll、select和kqueue等;支持I/O、定时器和信号事件;注册事件优先级。PHP提供了相应的扩展libevent和Event。libevent扩展很久没有更新了,只支持PHP5系列。虽然有网友fork了PHP7的libevent扩展的源码来更新兼容性,但是稳定性不好,可能会出现分段错误,所以最好使用PHP7的Event扩展。与libevent扩展不同,Event扩展提供面向对象的接口并支持更多功能。libevent扩展libevent地址:http://pecl.php.net/package/l...libevent文档:http://docs.php.net/libevent系统需要先安装Libevent库:yuminstalllibevent-dev然后安装PHP展开。PHP5安装:peclinstalllibevent-0.1.0PHP7安装(不稳定):gitclonehttps://github.com/expressif/pecl-event-libevent.gitcdpecl-event-libeventphpize./configuremake&&sudomakeinstall注意:后面所有代码示例均使用php5.6+libevent-0.1.0环境。基本上用下面的例子实现一个单进程的TCP服务器,基于libevent实现I/O多路复用,达到高性能。libevent_tcp_server.php5){event_timer_del($args[1]);//删除定时器}}$base=event_base_new();$ev_timer=event_timer_new();event_timer_set($ev_timer,'ev_timer',[$TIME_INTVAL,$ev_timer]);event_base_set($ev_timer,$base);event_timer_add($ev_timer,$TIME_INTVAL);//单位微秒event_base_loop($base);上面的例子每1秒执行一个回调函数。也可以使用event_*系列函数实现:libevent_timer2.php5){event_timer_del($args[1]);}}$base=event_base_new();$event=event_new();event_set($event,0,EV_TIMEOUT,'ev_timer',[$TIME_INTVAL,$event]);event_base_set($event,$base);event_add($事件,$TIME_INTVAL);event_base_loop($base);可见event_timer_*系列函数是event_*系列函数EV_TIMEOUT事件的封装。总结event_*系列函数基本上可以分为以上三类。还有几个功能没说到,大家看说明书就明白了。(未完待续)欢迎关注公众号,及时获取最新文章!推荐!您每月只需2.5即可拥有带SSD的VPS!
