请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

swoole 2.1.3 + xdebug 环境,使用协程报错。

PHP Fatal error:  Uncaught Error: Maximum function nesting level of '1000' reached, aborting!

正在回答 回答被采纳积分+3

2回答

提问者 丶七夜Gg 2018-05-02 15:08:01
$http = new swoole_http_server('0.0.0.0', 8999);
$http -> on('request', function ($request, $response) {
    if ($request -> get && isset($request -> get['k'])) {
        $redis = new Swoole\Coroutine\Redis();
        $redis->connect('127.0.0.1', 6379);
        $value = $redis->get($request->get['k']);

        $response->header("Content-Type", "text/plain");
        $response->end($value);
    } else {
        $response -> end("<h1>Get none params</h1>");
    }

});

$http -> start();


写到这里吧,下面的排版有点问题。


server 接收到请求之后就会报错


放假的时候有搜索了一下,就找到 17年2月份 github 上的这个 issue 

swoole-src issue#1064

Rango 直接让关掉xdebug,关掉之后,问题就解决了。。。。

1 回复 有任何疑惑可以回复我~
singwa 2018-04-29 14:47:27

你好,你代码打包发我下,我看看

0 回复 有任何疑惑可以回复我~
  • 提问者 丶七夜Gg #1
    就实现了很简单的写成的例子
    ```
    $http = new swoole_http_server('0.0.0.0', 8999);
    $http -> on('request', function ($request, $response) {
        if ($request -> get && isset($request -> get['k'])) {
            $redis = new Swoole\Coroutine\Redis();
            $redis->connect('127.0.0.1', 6379);
            // $value = $redis->get($request->get['k']);
            $value = $redis->get('*');
    
            $response->header("Content-Type", "text/plain");
            $response->end($value);
        } else {
            $response -> end("<h1>Get none params</h1>");
        }
    
    });
    
    $http -> start();
    
    ```  
    
    请求之后,就报错了。
    
    参考 github 上的去年2月份的这个 issue 
    
    > https://github.com/swoole/swoole-src/issues/1064
    
    Rango 直接让关掉xdebug。。。
    回复 有任何疑惑可以回复我~ 2018-05-02 15:03:16
  • 提问者 丶七夜Gg #2
    额,页面排版有点乱,我重新 append 了。
    回复 有任何疑惑可以回复我~ 2018-05-02 15:08:39
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信