This commit is contained in:
2020-09-18 21:09:36 +08:00
parent a762e67dab
commit 6e6c9af887
2 changed files with 31 additions and 22 deletions
+21 -15
View File
@@ -287,6 +287,26 @@ class Server extends Application
private function dispatchCreate($config, $settings) private function dispatchCreate($config, $settings)
{ {
if (!($this->baseServer instanceof \Swoole\Server)) { if (!($this->baseServer instanceof \Swoole\Server)) {
$this->parseServer($config, $settings);
} else {
$newListener = $this->baseServer->addlistener($config['host'], $config['port'], $config['mode']);
if (isset($config['settings']) && is_array($config['settings'])) {
$newListener->set($config['settings']);
}
$this->onListenerBind($config, $this->baseServer);
}
return $this->baseServer;
}
/**
* @param $config
* @param $settings
* @throws Exception
* @return void
*/
private function parseServer($config, $settings)
{
$class = $this->dispatch($config['type']); $class = $this->dispatch($config['type']);
if ($this->isUse($config['port'])) { if ($this->isUse($config['port'])) {
return $this->error_stop($config['host'], $config['port']); return $this->error_stop($config['host'], $config['port']);
@@ -302,14 +322,6 @@ class Server extends Application
$this->onLoadHttpHandler(); $this->onLoadHttpHandler();
} }
$this->baseServer->set($settings); $this->baseServer->set($settings);
} else {
$newListener = $this->baseServer->addlistener($config['host'], $config['port'], $config['mode']);
if (isset($config['settings']) && is_array($config['settings'])) {
$newListener->set($config['settings']);
}
$this->onListenerBind($config, $this->baseServer);
}
return $this->baseServer;
} }
@@ -369,9 +381,6 @@ class Server extends Application
{ {
$event = Snowflake::app()->getEvent(); $event = Snowflake::app()->getEvent();
$router = Snowflake::app()->getRouter(); $router = Snowflake::app()->getRouter();
if ($event->exists(Event::SERVER_WORKER_START, [$router, 'loadRouterSetting'])) {
return;
}
$event->on(Event::SERVER_WORKER_START, [$router, 'loadRouterSetting']); $event->on(Event::SERVER_WORKER_START, [$router, 'loadRouterSetting']);
} }
@@ -386,10 +395,7 @@ class Server extends Application
$websocket->namespace = 'App\\Websocket'; $websocket->namespace = 'App\\Websocket';
$websocket->path = APP_PATH . 'app/Websocket'; $websocket->path = APP_PATH . 'app/Websocket';
$event = Snowflake::app()->event; $event = Snowflake::app()->getEvent();
if ($event->exists(Event::SERVER_WORKER_START, [$websocket, 'registration_notes'])) {
return;
}
$event->on(Event::SERVER_WORKER_START, [$websocket, 'registration_notes']); $event->on(Event::SERVER_WORKER_START, [$websocket, 'registration_notes']);
} }
+3
View File
@@ -70,6 +70,9 @@ class Event extends BaseObject
} }
$callback[0] = Snowflake::createObject($callback[0]); $callback[0] = Snowflake::createObject($callback[0]);
} }
if ($this->exists($name, $callback)) {
return;
}
if (!empty($this->_events[$name]) && $isAppend === true) { if (!empty($this->_events[$name]) && $isAppend === true) {
array_unshift($this->_events[$name], [$callback, $parameter]); array_unshift($this->_events[$name], [$callback, $parameter]);
} else { } else {