타사 확장을 다운로드하는 최초의 작곡가를 사용하려면이 composer.json 거기에 파일에서 현재 디렉토리에 직접 웹 소켓 클라이언트 PHP를 달성 할 수있다
작곡가 필요 textalk / 웹 소켓
(필요한 ' 벤더 / autoload.php를 ' ); 사용 웹 소켓 \ 클라이언트; $ 클라이언트는 새로운 클라이언트 (= " WS : //echo.websocket.org/을 " ); $ 클라이언트 -> (보내 " 안녕하세요 WebSocket.org! " ); 에코 $는 클라이언트 ->) (수신하고;
읽기 작업과 PHP 파일, 최신 내용에 추가 읽기는, 다음 코드는 10.xx.2.xx로 전송 클라이언트의 로그를 읽습니다 : 9501
#!는 / usr / 빈 / ENV PHP는 <? PHP (필요한 ' 벤더 / autoload.php를 ' ); 사용 웹 소켓 \ 클라이언트; 경우 ( 2 ! = 수 ($ ARGV)) { 에 fwrite ( STDERR, " 통화 형식 오류! 사용은 파일 이름 형식 ./xxx " .PHP_EOL ); 반환 1 ; } $ FILE_NAME = $는 argv [ 1 ]; (정의 " MAX_SHOW " , 8192 ); $ FILE_SIZE = 0 ; $ file_size_new = 0 ; $ add_size는 = 0 ; ignore_size 달러 = 0 ; $ FP =하면 fopen ($ FILE_NAME, " R " ); $ 클라이언트 = 새로운 클라이언트 ( " WS : //10.xx.2.xx : 9501 / " ); 하지만 ( 1 ) { 싶으면 clearstatcache (); $ file_size_new = 파일 크기의 ($ FILE_NAME); $ add_size = $ file_size_new - $ FILE_SIZE; 경우 ($ add_size> 0 ) { 경우 ($ add_size> MAX_SHOW) { $ ignore_size = $ add_size - MAX_SHOW; $ add_size = MAX_SHOW; fseek는 ($ FP, $ FILE_SIZE + $ ignore_size); } // 직접 출력 콘텐츠 // 에 fwrite ( // STDOUT, // FREAD (FP $, $ add_size) // ) $ 클라이언트 -> 전송 (FREAD (FP $, $ add_size)); $ FILE_SIZE = $ file_size_new; } usleep ( 50000 ); } FCLOSE ($의 FP);
Swoole 서버 코드를 서버로 사용하고, 메시지 서버 수행을 수신 한 모든 방송에 접속되고
<? PHP는 $ 서버 = 새로운 Swoole \ 웹 소켓 \ 서버 ( "0.0.0.0", 9501 ); $ 서버 -> ( '개방'에 기능 (Swoole \ 웹 소켓 \ 서버 $ 서버 , $ 요청 ) 사용 ( $ FDS ) { 에코 "서버 : FD {와 악수 성공 $ 요청 -> FD} \ n" ; }); $ 서버 -> ( '메시지'에 기능 (Swoole \ 웹 소켓 \ 서버 $ 서버 , $ 프레임 ) 사용 ( $ FDS ) { 에코 '{에서받은 $ 프레임 -> FD} : { $ 프레임 -> 데이터}, 오피 { $ 프레임 -> 오피} 핀 { $ 프레임 -> 마무리} \ n ' ; 의 foreach ( $ 서버 -> 연결 등 $ FD ) { $ 서버 -> 푸시 ( $ FD , $ 프레임 -> 데이터); } }); $ 서버 -> ( '확대'의 함수 ( $ SER , $ FD ) { 에코 "클라이언트 { $ FD는 } 폐쇄 \ n ' ; }); $ 서버 ->) (시작;
클라이언트를 실행
실시간 출력은 브라우저에서 할 수 있습니다