This commit is contained in:
2021-07-22 15:57:17 +08:00
parent de937ace09
commit 7293c70dca
5 changed files with 25 additions and 5 deletions
+6 -1
View File
@@ -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']);
+1
View File
@@ -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 = [])
{
+7 -3
View File
@@ -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']);
+6 -1
View File
@@ -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']);
+5
View File
@@ -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']);