From 270a7ca9613c609f64dbb5705257a3446d834c4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Wed, 21 Jul 2021 14:27:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Server/HTTPServerListener.php | 10 ++++++---- Server/TCPServerListener.php | 6 +++--- Server/WebSocketServerListener.php | 4 ++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Server/HTTPServerListener.php b/Server/HTTPServerListener.php index d5ec49f2..80651008 100644 --- a/Server/HTTPServerListener.php +++ b/Server/HTTPServerListener.php @@ -65,11 +65,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('disconnect', [$reflect, 'onDisconnect']); - - $reflect->setEvents(Constant::DISCONNECT, $settings['events'][Constant::DISCONNECT] ?? null); + 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); $reflect->setEvents(Constant::CONNECT, $settings['events'][Constant::CONNECT] ?? null); - return static::$_http; } diff --git a/Server/TCPServerListener.php b/Server/TCPServerListener.php index 867b9ab2..ef65199e 100644 --- a/Server/TCPServerListener.php +++ b/Server/TCPServerListener.php @@ -31,6 +31,7 @@ class TCPServerListener extends Abstracts\Server * @return Server\Port * @throws NotFindClassException * @throws ReflectionException + * @throws Exception */ public static function instance(Server $server, string $host, int $port, int $mode, ?array $settings = []): Server\Port { @@ -44,13 +45,12 @@ class TCPServerListener extends Abstracts\Server static::$_tcp->set($settings['settings'] ?? []); static::$_tcp->on('receive', [$reflect, 'onReceive']); static::$_tcp->on('connect', [$reflect, 'onConnect']); + static::$_tcp->on('close', [$reflect, 'onClose']); if (swoole_version() >= '4.7.0') { static::$_tcp->on('disconnect', [$reflect, 'onDisconnect']); $reflect->setEvents(Constant::DISCONNECT, $settings['events'][Constant::DISCONNECT] ?? null); - } else { - static::$_tcp->on('close', [$reflect, 'onClose']); - $reflect->setEvents(Constant::CLOSE, $settings['events'][Constant::CLOSE] ?? null); } + $reflect->setEvents(Constant::CLOSE, $settings['events'][Constant::CLOSE] ?? null); $reflect->setEvents(Constant::RECEIVE, $settings['events'][Constant::RECEIVE] ?? null); $reflect->setEvents(Constant::CONNECT, $settings['events'][Constant::CONNECT] ?? null); diff --git a/Server/WebSocketServerListener.php b/Server/WebSocketServerListener.php index 19bd9521..cde35f15 100644 --- a/Server/WebSocketServerListener.php +++ b/Server/WebSocketServerListener.php @@ -106,7 +106,7 @@ class WebSocketServerListener extends Abstracts\Server */ public function onConnect(Server $server, int $fd) { - $this->runEvent(Constant::MESSAGE, fn() => $server->confirm($fd), [$server, $fd]); + $this->runEvent(Constant::CONNECT, fn() => $server->confirm($fd), [$server, $fd]); } @@ -126,7 +126,7 @@ class WebSocketServerListener extends Abstracts\Server */ public function onClose(Server $server, int $fd) { - $this->runEvent(Constant::MESSAGE, fn() => $server->confirm($fd), [$server, $fd]); + $this->runEvent(Constant::CLOSE, fn() => $server->confirm($fd), [$server, $fd]); } }