[비디오 튜토리얼] 최신 버전 swoole 설치 및 기능 테스트 작업

다중 동시 고성능 네트워크 통신 확장 오늘 우리는, PHP 수준에서 여러 개의 동시 비동기 통신을 달성 설치하고 테스트 PHP 및이 확장 나중에 PHP에로드 C 음성을 사용하여 개발되고, 많은 기능이 연설을 시뮬레이션으로 이동 크게 PHP 응용 프로그램 시나리오를 넓혀.

명령 할 수 문구의 공식 웹 사이트를 직접 사용하면 오류가 발생할 수 있으며, 전파 방해는 swoole를 설치할 때, 한 번 이상은 성공할 수하려고 이동하지 않습니다.
PECL swoole 설치
환경 및 CLI INI 파일의 PHP FPM 환경을 구성하기 위해, 그리고 그렇게 내로드 확장 할 수 있습니다.

비디오 주소 :

https://www.bilibili.com/video/av70354024/

httpServer.php

$ HTTP = 새로운 swoole_http_server ( "127.0.0.1", 9501 ); 

$ HTTP ->에 ( "시작" 기능 ( $ 서버 ) {
         에코는 "Swoole의 HTTP 서버 http://127.0.0.1:9501\n에서 시작된다" ; 
}); 

$ HTTP -> ( "요청"에 대한 기능 ( $ 요청 , $ 응답 ) {
         $ 응답 -> 헤더 ( "Content-Type을", "텍스트 / 일반" );
             $ 응답 -> 종료 (에 "Hello World \ n을" ) 
}); 

$ HTTP ->) (시작;

약간의 오차가있을 때 세션 객체의 사용을 참고 swoole의 첫 번째 새로운 버전은 Swoole은 \ HTTP를 클라이언트 \ 찾을 수없는 클래스가보고되고, 둘째 협회 과정에서 get 메소드를 수행하기 위해 제거

httpClient.php

$ 클라이언트 = 새로운 swoole_client (SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC); 
$ 클라이언트 -> () 함수 ($ CLI에 "연결"{에 
	    $ cli->은 ()에 "Hello World \ 없음"을 보내; 
}); 
$ 클라이언트 ->에서 (기능 ($ CLI, $ 데이터) "수신"{ 
	    에코 "수신 {$ 데이터} \ n"을; 
}); 
$ 클라이언트 -> ( "오류"기능 ($의 CLI) {에서 
	    반향 실패 "\ n을 연결"; 
}); 
$ 클라이언트 -> ON ( "닫기"기능 ($의 CLI) { 
	    에코 "연결 종료 \ 않음"; 
}); 
$ 클라이언트 -> 연결 ( "127.0.0.1"(9502)을, 0.5);

taskServer.php

<? PHP는 
$의 SERV = 새로운 Swoole \ 서버 ( "127.0.0.1", 9502, SWOOLE_BASE); 

$ serv-> (어레이 (세트 
    'worker_num'=> 2 
    'task_worker_num'=> 4 
)); 

$ serv-> ((Swoole \ 서버 $의 SERV, $ FD, $ from_id, $ 데이터) {함수를 '수신'에 
    "接收数据"에코 $ 데이터 "\ n";.. 
    $ 데이터 = $ 데이터 (트리밍) ; 
    $ TASK_ID = $ serv-> 태스크 ($ 데이터, 0); 
    $ serv-> 보낼 ($ FD "分发任务,任务아이디为$으로의 TASK_ID \ 없음"); 
}); 

$ serv-> ( '작업'기능에 대한 (Swoole \ 서버 $의 SERV, $ TASK_ID, $ from_id, $ 데이터) { 
    에코 "태 스커进程接收到数据"; 
    # "에코 {$ serv-> worker_id} \ tonTask : [PID = {$ serv-> worker_pid}]. TASK_ID = $ TASK_ID, DATA_LEN = "나 strlen ($ 데이터). PHP_EOL ".."; 
    $ serv-> 완료 ($ 데이터); 
});

$ serv->에 ( '마무리'기능 (Swoole \ 서버 $의 SERV, $ TASK_ID, $ 데이터) { 
    . $ 데이터) .PHP_EOL (나 strlen "작업 # $가 DATA_LEN = 완성 TASK_ID"에코; 
}); 

$ serv-> ( 'workerStart'기능의 ($ SERV, $의 worker_id) {에서 
    글로벌 $ argv와; 
    ($ worker_id> = $ serv->으로 설정하는 경우 [ "worker_num ']) { 
        swoole_set_process_name ("PHP {$ argv와 [0 ]} task_worker ") 
    한다} else { 
        swoole_set_process_name ("$ {PHP argv와 [0]} 작업자 "); 
    } 
}); 

$ serv->) (시작;

  

taskClient.php

$ 클라이언트 = 새로운 swoole_client (SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
$ 클라이언트 ->에 ( "연결" 기능 ( $의 CLI ) {
         $ CLI -> 전송 ( "안녕하세요 세계 \ n을" ); 
}); 
$ 클라이언트 -> ON ( "수신" 기능 ( $ CLI를 , $ 데이터 ) {
         에코 "수신 { $ 데이터 } \ n"을 ; 
}); 
$ 클라이언트 ( "오류"에> - 기능 ( $의 CLI ) {
         에코 "실패 \ n을 연결" ; 
})
함수 ( $의 CLI ) {
         에코 "연결 근접 \ 않음" ; 
}); 
$ 클라이언트 -> 연결 ( "127.0.0.1", 9502을, 0.5);

 

  

추천

출처www.cnblogs.com/taoshihan/p/11628453.html