mingyunyuziyou

客户端向服务器发送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