博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php libevent 扩展使用示例
阅读量:6184 次
发布时间:2019-06-21

本文共 1972 字,大约阅读时间需要 6 分钟。

'.chr(10); } public static function ev_accept($socket, $flag, $base) { //echo __FILE__.'-'.__LINE__.'
'.chr(10); static $id = 0; $connection = stream_socket_accept($socket); stream_set_blocking($connection, 0); list($remoteIP, $remotePort) = explode(':',stream_socket_get_name($connection,true)); $id ++; $buffer = event_buffer_new($connection, 'epoll::ev_read', NULL, 'epoll::ev_error', $id); event_buffer_base_set($buffer, $base); event_buffer_timeout_set($buffer, 30, 30); event_buffer_watermark_set($buffer, EV_READ, 0, 0xffffff); event_buffer_priority_set($buffer, 60);//超时自动断开时间 event_buffer_enable($buffer, EV_READ | EV_PERSIST); // we need to save both buffer and connection outside self::$connections[$id] = $connection; self::$buffers[$id] = $buffer; //self::$link_msg->send(CONNECT_IN_MSG.$remoteIP.','.$remotePort, $id); self::$fd2pid[$id] = 0; //echo 'In-> $id='.$id.',$connection='.$connection."\n"; } public static function ev_error($buffer, $error, $id) { event_buffer_disable(self::$buffers[$id], EV_READ | EV_WRITE); event_buffer_free(self::$buffers[$id]); //echo 'Ot-> $id='.$id."\n"; //self::$link_msg->send(CONNECT_OUT_MSG, $id); fclose(self::$connections[$id]); unset(self::$fd2pid[$id]); unset(self::$buffers[$id], self::$connections[$id]); } public static function ev_read($buffer, $id) { //echo __FILE__.'-'.__LINE__.'
'.chr(10); static $ct=0; while ($read = event_buffer_read($buffer, 256)) { $ct+=strlen($read); if(strpos($read,'ct')!==false) echo 'Ct=>'.count(self::$connections).'\n'; $mid = self::$fd2pid[$id]; //self::$msgs[$mid]->send($read , $id); } } }

 

转载地址:http://tdsda.baihongyu.com/

你可能感兴趣的文章
年薪六十万,你还缺些什么
查看>>
[转载] 中国好声音 120817
查看>>
Monte Carlo tree search 学习
查看>>
使用golang的slice来模拟栈
查看>>
【计算机网络】TCP关闭连接问题及注意
查看>>
【评分】第四次作业--项目选题报告(团队)
查看>>
增加wamp64 PHP支持版本
查看>>
重复枚举和不重复枚举
查看>>
ES正常停止步骤
查看>>
通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明。
查看>>
Kafka的CommitFailedException异常
查看>>
思考与阅读
查看>>
ES6
查看>>
Wireshark中的一些SNMP相关的过滤器
查看>>
java8 新特性
查看>>
Xilinx Vivado的使用详细介绍(1):创建工程、编写代码、行为仿真、Testbench
查看>>
在 Scale Up 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(145)
查看>>
基于 HTML5 Canvas 实现的文字动画特效
查看>>
jsp c标签不遍历的方法
查看>>
Linux命令:pigz多线程压缩工具【转】
查看>>