> 백엔드 개발 > PHP 튜토리얼 > Thinkphp에서 Swoole을 직접 클릭하세요.

Thinkphp에서 Swoole을 직접 클릭하세요.

coldplay.xixi
풀어 주다: 2023-04-08 19:10:02
앞으로
4549명이 탐색했습니다.

Swoole은 프로덕션 환경을 위한 PHP 비동기 네트워크 통신 엔진입니다. PHP 개발자가 고성능 비동기 및 동시 TCP, UDP, Unix 소켓, HTTP 및 WebSocket 서비스를 작성할 수 있도록 합니다.


설치

먼저 Swoole 공식 홈페이지의 안내에 따라 Swoole Extension을 설치한 후 Think-Swoole Extension을 설치하세요.

composer require topthink/think-swoole=2.0.*使用
로그인 후 복사

UseThinkphp에서 Swoole을 직접 클릭하세요.

Swoole은 현재 Windows를 지원하지 않습니다Swoole을 HttpServer로 사용

명령줄에서 서버를 시작하세요(버전 2.0+ think-swoole 확장 필요)

명령줄에서 직접 서버를 시작하세요.

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 [
    &#39;host&#39;  => &#39;tp5.com&#39;,
    &#39;port&#39;  =>   9508,];
可以支持Swoole自身的配置参数设置,例如:
<?phpreturn [
    &#39;host&#39;          => &#39;tp5.com&#39;,
    &#39;port&#39;          =>   9508,
    &#39;worker_num&#39;    =>   4,
    &#39;max_request&#39;   =>   1000,];
로그인 후 복사

onWorkerStart 및 onRequest 이벤트 콜백 메서드는 확장에 정의되어 있습니다(다음을 수행하세요. 익숙하지 않은 경우 대체하지 마십시오.) 구성 파일의 클로저를 사용하여 정의할 수 있는 swoole의 이벤트 콜백 메소드를 사용자 정의해야 합니다.

<?phpreturn [
    &#39;host&#39;          => &#39;tp5.com&#39;,
    &#39;port&#39;          =>   9508,
    &#39;worker_num&#39;    =>   4,
    &#39;max_request&#39;   =>   1000,
    &#39;WorkerStop&#39;    =>   function($server, $worker_id){
        // 添加你的代码
    },];
로그인 후 복사

또는 구성 파일에 직접 추가하세요

Swoole을 서버로 사용

Swoole 서버 직접 시작을 지원할 수 있습니다(버전 2.0.9 이상 필요)

php think swoole:server

시작 0.0.0.0:9508의 Websocket 서비스.

사용자 정의 매개변수가 필요한 경우 다음을 포함하여 config/swoole_server.php에서 구성할 수 있습니다.

호스트

Listening address

port

Listening port


mode

Run mode

socketSocket type클로저를 사용하여 관련 이벤트 콜백을 정의하는 것도 지원합니다. swoole의 모든 콜백 메소드 정의를 지원합니다(콜백 메소드는 공개 유형이어야 함)serverType 속성은 소켓 또는 http로 정의되고 swoole의 swoole_websocket_server 및 swoole_http_server를 지원합니다
return [
    &#39;swoole_class&#39;  =>   &#39;app\http\Swoole&#39;,];
로그인 후 복사
명령줄에서 서버 시작
php think swoole:server
로그인 후 복사
php think swoole:server reload
로그인 후 복사

PHP 비디오 튜토리얼"

위 내용은 Thinkphp에서 Swoole을 직접 클릭하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:liqingbo.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿

모두 지원 매개변수.
return [
    // 扩展自身配置
    &#39;host&#39;         => &#39;0.0.0.0&#39;, // 监听地址
    &#39;port&#39;         => 9501, // 监听端口
    &#39;type&#39;         => &#39;socket&#39;, // 服务类型 支持 socket http server
    &#39;mode&#39;         => SWOOLE_PROCESS,
    &#39;socket_type&#39;  => SWOOLE_SOCK_TCP,
 
    // 可以支持swoole的所有配置参数
    &#39;daemonize&#39;    => false,
 
    // 事件回调定义
    &#39;onOpen&#39;       => function ($server, $request) {
        echo "server: handshake success with fd{$request->fd}\n";
    },
 
    &#39;onMessage&#39;    => function ($server, $frame) {
        echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
        $server->push($frame->fd, "this is server");
    },
 
    &#39;onRequest&#39;    => function ($request, $response) {
        $response->end("<h1>Hello Swoole. #" . rand(1000, 9999) . "</h1>");
    },
 
    &#39;onClose&#39;      => function ($ser, $fd) {
        echo "client {$fd} closed\n";
    },];
로그인 후 복사
사용자 정의 서비스 클래스를 사용할 수도 있습니다.
<?php
namespace app\http;use think\swoole\Server;class Swoole extends Server{
    protected $host = &#39;127.0.0.1&#39;;
    protected $port = 9502;
    protected $option = [ 
        &#39;worker_num&#39;=> 4,
        &#39;daemonize&#39; => true,
        &#39;backlog&#39;   => 128
    ];
 
    public function onReceive($server, $fd, $from_id, $data)
    {
        $server->send($fd, &#39;Swoole: &#39;.$data);
    }}
로그인 후 복사
그런 다음 swoole_server에서 . PHP에 구성 매개변수 추가: 이 매개변수를 정의한 후에는 다른 구성 매개변수가 더 이상 유효하지 않습니다.
재로드|재시작|중지|상태 작업 지원 추천 튜토리얼: "