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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート