客户端向服务器发送TCP请求,服务器接受到线程ID都是0
作者:
秒速五厘米
//创建sever对象 监听9501的端口
$serv = new swoole_server("127.0.0.1",9501);
$serv->set([
'worker_num'=>8,//work 进程数 cpu 1-4
'max_request' => 10000,
]);
//监听链接进入事件 $fd是客户端连接的唯一标识 reactor_id线程id
$serv->on('connect',function($serv,$fd,$reactor_id){
echo "client:connect.\n";
});
//监听数据接收事件
$serv->on('receive',function($serv,$fd,$from_id,$data){
$serv->send($fd,'server:'.$data);
});
//监听链接关闭事件$serv->on('close',function($serv,$fd){
echo "client close";
});
//启动服务器
serv->start();
1,先看看您的CPU核数是多少?
2,是否设置了线程数reactor_num,如果没设置默认就是你cpu的核数,那么如果你cpu为1核那每次你的线程ID就是0了。
3,设置下reactor_num为4测试下看看问题是否存在?
备注:
reactor_num必须小于或等于worker_num。如果设置的reactor_num大于worker_num,那么swoole会自动调整使reactor_num等于worker_num