공식 정의:
Swoole: PHP 재정의
순수 C 언어로 작성된 PHP의 비동기, 병렬, 고성능 네트워크 통신 엔진은 PHP 언어로 비동기 멀티스레드 서버를 제공합니다. , 비동기 TCP/UDP 네트워크 클라이언트, 비동기 MySQL, 비동기 Redis, 데이터베이스 연결 풀, AsyncTask, 메시지 큐, 밀리초 타이머, 비동기 파일 읽기 및 쓰기, 비동기 DNS 쿼리. Swoole에는 Http/WebSocket 서버/클라이언트 및 Http2.0 서버가 내장되어 있습니다.
Swoole은 인터넷, 모바일 통신, 기업용 소프트웨어, 클라우드 컴퓨팅, 온라인 게임, 사물 인터넷, 차량 인터넷, 스마트 홈 및 기타 분야에서 널리 사용될 수 있습니다. PHP Swoole을 네트워크 통신 프레임워크로 사용하면 기업 IT R&D 팀의 효율성이 크게 향상되고 혁신적인 제품 개발에 더 집중할 수 있습니다.
Swoole 확장 설치 및 케이스 출처: http://wiki.swoole.com/wiki/page/6.html
간단한 케이스:
<?<span>php </span><span>class</span><span> Server { </span><span>private</span><span>$serv</span><span>; </span><span>public</span><span>function</span><span> __construct() { </span><span>$this</span>->serv = <span>new</span> swoole_server("0.0.0.0", 9501<span>); </span><span>$this</span>->serv->set(<span>array</span><span>( </span>'worker_num' => 8, 'daemonize' => <span>false</span>, 'max_request' => 10000, 'dispatch_mode' => 2, 'debug_mode' => 1<span> )); </span><span>$this</span>->serv->on('Start', <span>array</span>(<span>$this</span>, 'onStart'<span>)); </span><span>$this</span>->serv->on('Connect', <span>array</span>(<span>$this</span>, 'onConnect'<span>)); </span><span>$this</span>->serv->on('Receive', <span>array</span>(<span>$this</span>, 'onReceive'<span>)); </span><span>$this</span>->serv->on('Close', <span>array</span>(<span>$this</span>, 'onClose'<span>)); </span><span>$this</span>->serv-><span>start(); } </span><span>public</span><span>function</span> onStart(<span>$serv</span><span>) { </span><span>echo</span> "Start\n"<span>; } </span><span>public</span><span>function</span> onConnect(<span>$serv</span>, <span>$fd</span>, <span>$from_id</span><span>) { </span><span>$serv</span>->send(<span>$fd</span>, "Hello {<span>$fd</span>}!"<span>); } </span><span>public</span><span>function</span> onReceive(swoole_server <span>$serv</span>, <span>$fd</span>, <span>$from_id</span>, <span>$data</span><span>) { </span><span>echo</span> "Get Message From Client {<span>$fd</span>}:{<span>$data</span>}\n"<span>; } </span><span>public</span><span>function</span> onClose(<span>$serv</span>, <span>$fd</span>, <span>$from_id</span><span>) { </span><span>echo</span> "Client {<span>$fd</span>} close connection\n"<span>; } } </span><span>//</span><span> 启动服务器</span><span>$server</span> = <span>new</span> Server();
<?<span>php </span><span>class</span><span> Client { </span><span>private</span><span>$client</span><span>; </span><span>public</span><span>function</span><span> __construct() { </span><span>$this</span>->client = <span>new</span><span> swoole_client(SWOOLE_SOCK_TCP); } </span><span>public</span><span>function</span><span> connect() { </span><span>if</span> (!<span>$this</span>->client->connect("127.0.0.1", 9501, 1<span>)) { </span><span>echo</span> "Error: {<span>$fp</span>->errMsg}[{<span>$fp</span>->errCode}]\n"<span>; } </span><span>$message</span> = <span>$this</span>->client-><span>recv(); </span><span>echo</span> "Get Message From Server:{<span>$message</span>}\n"<span>; </span><span>fwrite</span>(STDOUT, "请输入消息:"<span>); </span><span>$msg</span> = <span>trim</span>(<span>fgets</span><span>(STDIN)); </span><span>$this</span>->client->send(<span>$msg</span><span>); } } </span><span>$client</span> = <span>new</span><span> Client(); </span><span>$client</span>->connect();
각각 두 개의 터미널을 열고 php server.php php client.php를 입력하여 효과를 확인하세요!
위 내용은 wool과 ole의 내용을 포함하여 Swoole에 대한 첫 소개를 소개하고 있는데, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.