Swoole TCP服务器getClientInfo方法的典型应用场景
getClientInfo方法在Swoole TCP服务器开发中有多种实际应用场景,以下是几个典型的使用案例:
1.连接管理与监控
<?php $server = new Swoole\Server('0.0.0.0',9501); $server->tick(1000,function()use($server){ $start_fd = 0; echo "this is tick\n\r"; $conn_list = $server->getClientList($start_fd,10); if($conn_list !== false ){ foreach($server->getClientList() as $fd){ $info = $server->getClientInfo($fd); if(time() - $info['last_time'] > 30 ){ $server->close($fd); echo "关闭不活跃的客户端 fd = {$fd} .\n\r"; } } } // $start_fd = end($conn_list); // foreach($conn_list as $fd){ // $info = $server->getClientInfo($fd); // var_dump($info); // } }); $server->on('Receive',function($server,$fd,$reactor_id,$data){ echo "已连接\n\r"; $clientInfo = $server->getClientInfo($fd); var_dump($clientInfo); $client_ip = $clientInfo['remote_ip']; if($client_ip == "127.0.0.1"){ $server->close($fd); } }); $server->on('Close',function($server,$fd){ echo "{$fd} 已关闭"; }); $server->start();

浙公网安备 33010602011771号