From 7293c70dca7c44b7447cd5d6c04a427ded4254bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Thu, 22 Jul 2021 15:57:17 +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 | 7 ++++++- Server/ServerManager.php | 1 + Server/TCPServerListener.php | 10 +++++++--- Server/UDPServerListener.php | 7 ++++++- Server/WebSocketServerListener.php | 5 +++++ 5 files changed, 25 insertions(+), 5 deletions(-) diff --git a/Server/HTTPServerListener.php b/Server/HTTPServerListener.php index 9b315f0d..3fd27499 100644 --- a/Server/HTTPServerListener.php +++ b/Server/HTTPServerListener.php @@ -15,6 +15,7 @@ use Swoole\Error; use Swoole\Http\Request; use Swoole\Http\Response; use Swoole\Server; +use Swoole\Server\Port; use Throwable; @@ -25,7 +26,7 @@ use Throwable; class HTTPServerListener extends Abstracts\Server { - protected static mixed $_http; + protected static bool|Port $_http; use ListenerHelper; @@ -63,6 +64,10 @@ class HTTPServerListener extends Abstracts\Server /** @var static $reflect */ $reflect = Snowflake::getDi()->getReflect(static::class)?->newInstance(); static::$_http = $server->addlistener($host, $port, $mode); + if (!(static::$_http instanceof Port)) { + trigger_error('Port is ' . $host . '::' . $port . ' must is tcp listener type.'); + } + static::$_http->set($settings['settings'] ?? []); static::$_http->on('request', [$reflect, 'onRequest']); static::$_http->on('connect', [$reflect, 'onConnect']); diff --git a/Server/ServerManager.php b/Server/ServerManager.php index 0d4a5f40..6b27aba9 100644 --- a/Server/ServerManager.php +++ b/Server/ServerManager.php @@ -71,6 +71,7 @@ class ServerManager extends Abstracts\Server * @param array $settings * @throws NotFindClassException * @throws ReflectionException + * @throws ConfigException */ public function addListener(string $type, string $host, int $port, int $mode, array $settings = []) { diff --git a/Server/TCPServerListener.php b/Server/TCPServerListener.php index 9d9d1925..3262e42b 100644 --- a/Server/TCPServerListener.php +++ b/Server/TCPServerListener.php @@ -8,6 +8,7 @@ use Snowflake\Event; use Snowflake\Exception\NotFindClassException; use Snowflake\Snowflake; use Swoole\Server; +use Swoole\Server\Port; /** @@ -19,7 +20,7 @@ class TCPServerListener extends Abstracts\Server use ListenerHelper; - protected static mixed $_tcp; + protected static bool|Port $_tcp; /** @@ -29,12 +30,12 @@ class TCPServerListener extends Abstracts\Server * @param int $port * @param int $mode * @param array|null $settings - * @return Server\Port + * @return Port * @throws NotFindClassException * @throws ReflectionException * @throws Exception */ - public static function instance(Server $server, string $host, int $port, int $mode, ?array $settings = []): Server\Port + public static function instance(Server $server, string $host, int $port, int $mode, ?array $settings = []): Port { if (!in_array($mode, [SWOOLE_TCP, SWOOLE_TCP6])) { trigger_error('Port mode ' . $host . '::' . $port . ' must is tcp listener type.'); @@ -43,6 +44,9 @@ class TCPServerListener extends Abstracts\Server /** @var static $reflect */ $reflect = Snowflake::getDi()->getReflect(static::class)?->newInstance(); static::$_tcp = $server->addlistener($host, $port, $mode); + if (!(static::$_tcp instanceof Port)) { + trigger_error('Port is ' . $host . '::' . $port . ' must is tcp listener type.'); + } static::$_tcp->set($settings['settings'] ?? []); static::$_tcp->on('receive', [$reflect, 'onReceive']); static::$_tcp->on('connect', [$reflect, 'onConnect']); diff --git a/Server/UDPServerListener.php b/Server/UDPServerListener.php index a910b425..e17118a8 100644 --- a/Server/UDPServerListener.php +++ b/Server/UDPServerListener.php @@ -8,6 +8,7 @@ use Snowflake\Event; use Snowflake\Exception\NotFindClassException; use Snowflake\Snowflake; use Swoole\Server; +use Swoole\Server\Port; /** @@ -17,7 +18,7 @@ use Swoole\Server; class UDPServerListener extends Abstracts\Server { - protected static mixed $_udp; + protected static bool|Port $_udp; use ListenerHelper; @@ -44,6 +45,10 @@ class UDPServerListener extends Abstracts\Server $reflect = Snowflake::getDi()->getReflect(static::class)->newInstance(); static::$_udp = $server->addlistener($host, $port, $mode); + if (!(static::$_udp instanceof Port)) { + trigger_error('Port is ' . $host . '::' . $port . ' must is tcp listener type.'); + } + static::$_udp->set($settings['settings'] ?? []); static::$_udp->on('packet', [$reflect, 'onPacket']); diff --git a/Server/WebSocketServerListener.php b/Server/WebSocketServerListener.php index 8784a338..f461d4fa 100644 --- a/Server/WebSocketServerListener.php +++ b/Server/WebSocketServerListener.php @@ -10,6 +10,7 @@ use Snowflake\Snowflake; use Swoole\Http\Request; use Swoole\Http\Response; use Swoole\Server; +use Swoole\Server\Port; use Swoole\WebSocket\Frame; @@ -45,6 +46,10 @@ class WebSocketServerListener extends Abstracts\Server $reflect = Snowflake::getDi()->getReflect(static::class)?->newInstance(); static::$_http = $server->addlistener($host, $port, $mode); + if (!(static::$_http instanceof Port)) { + trigger_error('Port is ' . $host . '::' . $port . ' must is tcp listener type.'); + } + static::$_http->set($settings['settings'] ?? []); static::$_http->on('connect', [$reflect, 'onConnect']); static::$_http->on('handshake', [$reflect, 'onHandshake']);