我写的例子总是会触发connect方法,一旦telnet建立了连接,会不停输出1111111。如何才能保证每次建立连接,事件只触发一次呢?
<?php
$base = event_base_new();
$event = event_new();
// 创建socket
$serv_socket = stream_socket_server('tcp://0.0.0.0:8000',$errno,$errstr);
// 设置事件循环监听
event_set($event, $serv_socket, EV_READ | EV_PERSIST,'connect',);
event_base_set($event,$base);
event_add($event);
event_base_loop($base);
// 定义事件回调
function connect($fd,$flags,$args) {
echo 1;
}
输出结果
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
connect 里要调用accept吧
可是accpet和触发这个connect有啥联系呢
我看workerman源码里面有个accept
@1005:感谢~重新写了一个例子,的确是添加了accpet就ok了,难道是accpet后,就将stream_socket_server接收到的连接可读状态给清空了么?