[PHP] 푸시 로그 파일에 웹 소켓 클라이언트 실시간 액세스와 같은 PHP

타사 확장을 다운로드하는 최초의 작곡가를 사용하려면이 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 ' ;
});

$ 서버 ->) (시작;

 

 

 

클라이언트를 실행

 

 

 실시간 출력은 브라우저에서 할 수 있습니다

 

추천

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