thinkphp 5.1에 적응하기 위한 swoole http_server 소개

coldplay.xixi
풀어 주다: 2021-03-23 11:31:42
앞으로
2466명이 탐색했습니다.

thinkphp 5.1에 적응하기 위한 swoole http_server 소개

1. 환경 설명

  • thinkphp 5.1
  • swoole 4.0.2
  • Alibaba Cloud CentOS 7.4

권장 사항: swoole

2.개발

1. tp 루트 디렉터리에 swool_http_server를 저장할 새 서버 디렉터리를 만듭니다.

http_server.php 코드 code

<?php
/**
 * Created by PhpStorm.
 * Date: 2018/7/22
 * Time: 15:12
 */
$http = new swoole_http_server(&#39;0.0.0.0&#39;, 8811);

//set函数用于设置swoole_server运行时的各项参数
$http->set([
    &#39;worker_num&#39;=>4 ,//worker process num
]);

//此事件在Worker进程/Task进程启动时发生
$http->on(&#39;WorkerStart&#39;,function (swoole_server $server, $worker_id){
    // 定义应用目录
    define(&#39;APP_PATH&#39;, __DIR__ . &#39;/../application/&#39;);
    // 加载基础文件 ThinkPHP 引导文件
    require __DIR__ . &#39;/../thinkphp/base.php&#39;;

});

$http->on(&#39;request&#39;, function ($request, $response){

    if($request->server){
        foreach ($request->server as $key => $val){
            $_SERVER[strtoupper($key)] = $val;
        }
    }
    if($request->header){
        foreach ($request->header as $key => $val){
            $_SERVER[strtoupper($key)] = $val;
        }
    }
    if($request->get){
        foreach ($request->get as $key => $val){
            $_GET[$key] = $val;
        }
    }
    if($request->post){
        foreach ($request->post as $key => $val){
            $_POST[$key] = $val;
        }
    }
    ob_start();
    try{
        // thinkphp 执行应用并响应
        think\Container::get(&#39;app&#39;)
            ->run()
            ->send();
    }catch (\Exception $exception){
        // todo
    }
    $res = ob_get_contents();
    ob_end_clean();
    $response->end($res);
});

$http->start();
로그인 후 복사

2. 서비스 디렉터리를 입력하고 php http_server.php를 실행하여 swoole_http_server

오류가 보고되지 않고 시작에 성공합니다.

3. 인덱스에 새 테스트 메서드를 만들고 서버 포트 8811

3에 액세스합니다. 문제

.swoole이 $_GET $_POST.... 슈퍼 전역 변수를 로그아웃하지 않습니다.

위 내용은 thinkphp 5.1에 적응하기 위한 swoole http_server 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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