Swoole은 프로덕션 환경을 위한 PHP 비동기 네트워크 통신 엔진입니다. PHP 개발자가 고성능 비동기 및 동시 TCP, UDP, Unix 소켓, HTTP 및 WebSocket 서비스를 작성할 수 있도록 합니다.
설치
먼저 Swoole 공식 홈페이지의 안내에 따라 Swoole Extension을 설치한 후 Think-Swoole Extension을 설치하세요.
composer require topthink/think-swoole=2.0.*使用
Use
Swoole은 현재 Windows를 지원하지 않습니다Swoole을 HttpServer로 사용
명령줄에서 직접 서버를 시작하세요.
php think swoole
시작이 완료되면 0.0.0.0:9501에서 HTTP 서버가 시작되어 현재 애플리케이션에 직접 액세스할 수 있습니다. Swoole 매개변수는 애플리케이션 구성 디렉터리의 swoole.php에서 구성할 수 있습니다(자세한 내용은 구성 파일 내용 참조).
데몬 모드에서 실행해야 하는 경우 swoole.php 파일에서
php think swoole -d를 사용하거나
'daemonize' => true를 설정할 수 있습니다. 참고: onWorkerStart가 실행 중일 때 HTTP_HOST가 없으므로 애플리케이션에서 app_host를 설정하는 것이 가장 좋습니다. 구성 파일지원되는 작업에는
php think swoole [start|stop|reload|restart]onWorkerStart가 실행 중일 때 HTTP_HOST가 없으므로 애플리케이션 구성 파일에서 app_host 매개변수를 설정하는 것이 가장 좋습니다. 시작 후
http://127.0.0.1:9501
주소와 포트를 구성해야 하는 경우 애플리케이션 구성 디렉터리에
swoole.php 구성 파일을 추가한 다음 다음을 설정할 수 있습니다.<?phpreturn [ 'host' => 'tp5.com', 'port' => 9508,]; 可以支持Swoole自身的配置参数设置,例如: <?phpreturn [ 'host' => 'tp5.com', 'port' => 9508, 'worker_num' => 4, 'max_request' => 1000,];onWorkerStart 및 onRequest 이벤트 콜백 메서드는 확장에 정의되어 있습니다(다음을 수행하세요. 익숙하지 않은 경우 대체하지 마십시오.) 구성 파일의 클로저를 사용하여 정의할 수 있는 swoole의 이벤트 콜백 메소드를 사용자 정의해야 합니다.
<?phpreturn [ 'host' => 'tp5.com', 'port' => 9508, 'worker_num' => 4, 'max_request' => 1000, 'WorkerStop' => function($server, $worker_id){ // 添加你的代码 },];또는 구성 파일에 직접 추가하세요
Swoole을 서버로 사용
Swoole 서버 직접 시작을 지원할 수 있습니다(버전 2.0.9 이상 필요)php think swoole:server
시작 0.0.0.0:9508의 Websocket 서비스.
portListening port
mode
Run mode
socket
모두 지원 매개변수. | 클로저를 사용하여 관련 이벤트 콜백을 정의하는 것도 지원합니다. return [ // 扩展自身配置 'host' => '0.0.0.0', // 监听地址 'port' => 9501, // 监听端口 'type' => 'socket', // 服务类型 支持 socket http server 'mode' => SWOOLE_PROCESS, 'socket_type' => SWOOLE_SOCK_TCP, // 可以支持swoole的所有配置参数 'daemonize' => false, // 事件回调定义 'onOpen' => function ($server, $request) { echo "server: handshake success with fd{$request->fd}\n"; }, 'onMessage' => function ($server, $frame) { echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n"; $server->push($frame->fd, "this is server"); }, 'onRequest' => function ($request, $response) { $response->end("<h1>Hello Swoole. #" . rand(1000, 9999) . "</h1>"); }, 'onClose' => function ($ser, $fd) { echo "client {$fd} closed\n"; },];사용자 정의 서비스 클래스를 사용할 수도 있습니다. <?php namespace app\http;use think\swoole\Server;class Swoole extends Server{ protected $host = '127.0.0.1'; protected $port = 9502; protected $option = [ 'worker_num'=> 4, 'daemonize' => true, 'backlog' => 128 ]; public function onReceive($server, $fd, $from_id, $data) { $server->send($fd, 'Swoole: '.$data); }} | swoole의 모든 콜백 메소드 정의를 지원합니다(콜백 메소드는 공개 유형이어야 함)
그런 다음 swoole_server에서 . PHP에 구성 매개변수 추가: | 이 매개변수를 정의한 후에는 다른 구성 매개변수가 더 이상 유효하지 않습니다. |
재로드|재시작|중지|상태 작업 지원 | 추천 튜토리얼: " | PHP 비디오 튜토리얼
위 내용은 Thinkphp에서 Swoole을 직접 클릭하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!