win11 webman2.1.2 http-client3.0.3 开启swow协程报错

筱洛洛

问题描述

访问index后,页面会立即响应,但是控制台会在30秒内会出现报错

程序代码

<?php

namespace app\controller;

use support\Request;

class IndexController
{
    public function index(Request $request)
    {
        $http = new \Workerman\Http\Client();
        $response = $http->get('https://www.baidu.com/');
        var_dump($response->getStatusCode());
        var_dump($response->getBody()) ;
        return 'hello world';
    }

}

报错信息

D:\phpstudy_pro\WWW\newsmid>php windows.php

---------------------------------------------- WORKERMAN -----------------------------------------------
Workerman/5.1.3         PHP/8.2.28 (JIT off)          Windows NT/10.0
----------------------------------------------- WORKERS ------------------------------------------------
worker                                          listen                              processes   status
webman                                          http://0.0.0.0:8787                 1           [ok]
monitor                                         none                                1           [ok]
int(200)
object(Workerman\Psr7\Stream)#75 (7) {
  ["stream":"Workerman\Psr7\Stream":private]=>
  resource(202) of type (stream)
  ["size":"Workerman\Psr7\Stream":private]=>
  int(227)
  ["seekable":"Workerman\Psr7\Stream":private]=>
  bool(true)
  ["readable":"Workerman\Psr7\Stream":private]=>
  bool(true)
  ["writable":"Workerman\Psr7\Stream":private]=>
  bool(true)
  ["uri":"Workerman\Psr7\Stream":private]=>
  string(10) "php://temp"
  ["customMetadata":"Workerman\Psr7\Stream":private]=>
  array(0) {
  }
}
TypeError: feof(): supplied resource is not a valid stream resource in D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Connection\TcpConnection.php:838
Stack trace:
#0 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Connection\TcpConnection.php(838): feof(Resource id #186)
#1 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Connection\TcpConnection.php(645): Workerman\Connection\TcpConnection->doSslHandshake(Resource id #186)
#2 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Events\Swow.php(292): Workerman\Connection\TcpConnection->baseRead(Resource id #186)
#3 [internal function]: Workerman\Events\Swow->Workerman\Events\{closure}()
#4 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Events\Swow.php(290): Swow\Coroutine::run(Object(Closure))
#5 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Events\Swow.php(152): Workerman\Events\Swow->safeCall(Object(Closure), Array)
#6 [internal function]: Workerman\Events\Swow->Workerman\Events\{closure}()
#7 {main}
TypeError: stream_socket_accept(): supplied resource is not a valid stream resource in D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Worker.php:2642
Stack trace:
#0 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Worker.php(2642): stream_socket_accept(Resource id #91, 0, NULL)
#1 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Events\Swow.php(292): Workerman\Worker->acceptTcpConnection(Resource id #91)
#2 [internal function]: Workerman\Events\Swow->Workerman\Events\{closure}()
#3 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Events\Swow.php(290): Swow\Coroutine::run(Object(Closure))
#4 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Events\Swow.php(152): Workerman\Events\Swow->safeCall(Object(Closure), Array)
#5 [internal function]: Workerman\Events\Swow->Workerman\Events\{closure}()
#6 {main}
TypeError: feof(): supplied resource is not a valid stream resource in D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Connection\TcpConnection.php:664
Stack trace:
#0 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Connection\TcpConnection.php(664): feof(Resource id #171)
#1 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Events\Swow.php(292): Workerman\Connection\TcpConnection->baseRead(Resource id #171)
#2 [internal function]: Workerman\Events\Swow->Workerman\Events\{closure}()
#3 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Events\Swow.php(290): Swow\Coroutine::run(Object(Closure))
#4 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Events\Swow.php(152): Workerman\Events\Swow->safeCall(Object(Closure), Array)
#5 [internal function]: Workerman\Events\Swow->Workerman\Events\{closure}()
#6 {main}
TypeError: feof(): supplied resource is not a valid stream resource in D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Connection\TcpConnection.php:664
Stack trace:
#0 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Connection\TcpConnection.php(664): feof(Resource id #172)
#1 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Events\Swow.php(292): Workerman\Connection\TcpConnection->baseRead(Resource id #172)
#2 [internal function]: Workerman\Events\Swow->Workerman\Events\{closure}()
#3 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Events\Swow.php(290): Swow\Coroutine::run(Object(Closure))
#4 D:\phpstudy_pro\WWW\newsmid\vendor\workerman\workerman\src\Events\Swow.php(152): Workerman\Events\Swow->safeCall(Object(Closure), Array)
#5 [internal function]: Workerman\Events\Swow->Workerman\Events\{closure}()
#6 {main}
process D:\phpstudy_pro\WWW\newsmid\runtime\windows\start_webman.php terminated and try to restart

操作系统及workerman/webman等框架组件具体版本

Windows 11 专业版 24H2
php-8.2.28-nts-Win32-vs16-x64
workerman/webman-framework 2.1.2
workerman/http-client 3.0.3
workerman/workerman 5.1.3
截图

83 1 0
1个回答

jack10082009

你好,看一下worker启动前有没有设置协程驱动,https://www.workerman.net/doc/workerman/coroutine/coroutine.html
截图截图

🔝