from_id는 어떤 리액터 스레드에서 나오는지입니다.
fd는 swoole_server에 있는 클라이언트의 고유 식별자인 tcp 연결의 파일 설명자입니다. 의 연결이 닫히면 fd는 다음에 의해 재사용됩니다. 새로운 수신 연결유지되고 있는 TCP 연결 fd는 재사용되지 않습니다
swoole_server->send/swoole_server->close 함수 호출 시 $fd 매개변수를 전달해야 올바르게 처리됩니다.비즈니스에서 브로드캐스트를 보내야 하는 경우 apc/redis/memcache/swoole_table을 사용하여 fd의 가치를 절약해야 합니다.
버전 1.6.0 이상에서는 from_id 매개변수가 더 이상 필요하지 않습니다. Swoole 자체는 모든 현재 fd 및 해당 from_id를 쿼리하는 ConnectionList를 제공합니다.버전 1.7.10 이상에서는 fd가 더 이상 파일 설명자가 아닙니다. fd는 1에서 1,600만까지의 자동 증가 숫자입니다.
fd가 1,600만을 초과하면 1
function my_onReceive($serv, $fd, $from_id, $data) { //向Connection发送数据 $serv->send($fd, 'Swoole: '.$data); //关闭Connection $serv->close($fd); }
$fdShaping을 사용하는 이유
$fd 객체 대신 shaping을 사용합니다. 주된 이유는 swoole이 다중 프로세스 모델이기 때문입니다. 작업자 프로세스/작업 프로세스에서 언제든지 클라이언트 연결에 액세스해야 할 수 있습니다. 추가 성능 오버헤드를 추가합니다. $fd가 정수이면 직접 저장 및 전송에 사용할 수 있습니다.PHP 계층에서는 클라이언트 연결을 객체로 캡슐화할 수도 있습니다. 객체 지향의 장점은 읽기가 더 쉽고 연결 작업을 메서드로 캡슐화할 수 있다는 것입니다. 예:
$connection->send($data); $connection->close();
위 내용은 swoole은 fd를 저장하기 위해 무엇을 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!