diff --git a/Server/HTTPServerListener.php b/Server/HTTPServerListener.php index 685b1faf..f60db5e4 100644 --- a/Server/HTTPServerListener.php +++ b/Server/HTTPServerListener.php @@ -69,12 +69,13 @@ class HTTPServerListener extends Abstracts\Server static::$_http->set($settings['settings'] ?? []); static::$_http->on('request', [$reflect, 'onRequest']); static::$_http->on('connect', [$reflect, 'onConnect']); - static::$_http->on('close', [$reflect, 'onClose']); if (swoole_version() >= '4.7.0') { static::$_http->on('disconnect', [$reflect, 'onDisconnect']); $reflect->setEvents(Constant::DISCONNECT, $settings['events'][Constant::DISCONNECT] ?? null); - } - $reflect->setEvents(Constant::CLOSE, $settings['events'][Constant::CLOSE] ?? null); + } else { + static::$_http->on('close', [$reflect, 'onClose']); + $reflect->setEvents(Constant::CLOSE, $settings['events'][Constant::CLOSE] ?? null); + } $reflect->setEvents(Constant::CONNECT, $settings['events'][Constant::CONNECT] ?? null); return static::$_http; } @@ -102,6 +103,7 @@ class HTTPServerListener extends Abstracts\Server { try { // defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES)); + /** @var \HttpServer\Http\Response $sResponse */ [$sRequest, $sResponse] = $this->request($request, $response); $result = $this->router->dispatch($sRequest);