swoole 学习笔记(2)-- swoole http_server 适配 thinkphp 5.1

1. 环境说明

  • thinkphp 5.1
  • swoole 4.0.2
  • 阿里云CentOS 7.4 

2.开发

1.在tp根目录下新建一个server目录,用来存放swool_http_server。

http_server.php 代码代码

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

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

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

});

$http->on('request', 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('app')
            ->run()
            ->send();
    }catch (\Exception $exception){
        // todo
    }
    $res = ob_get_contents();
    ob_end_clean();
    $response->end($res);
});

$http->start();

2. 进入service目录,执行 php http_server.php 启动swoole_http_server

没有报错,启动成功。

3. 在index 新建一个测试方法,访问服务器8811端口

3.问题

.swoole 不会注销$_GET $_POST .... 超全局变量

.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值