Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 122f37d6ce | |||
| 9fe40ff78a | |||
| ae4d75f310 | |||
| 707379c0fd | |||
| b861e0b17b | |||
| 7b576476a2 | |||
| 711a819ebb | |||
| 971b1f1fb0 | |||
| 4831bc67f5 | |||
| 1b8c6ecde0 | |||
| a4c78874e4 | |||
| b6c4693ef6 | |||
| adfa1cf3f2 |
@@ -35,6 +35,18 @@ class OnServerWorker extends \Kiri\Server\Abstracts\Server
|
||||
public EventDispatch $eventDispatch;
|
||||
|
||||
|
||||
public Router $collector;
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$this->collector = Kiri::getDi()->get(Router::class);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param Server $server
|
||||
* @param int $workerId
|
||||
@@ -46,7 +58,7 @@ class OnServerWorker extends \Kiri\Server\Abstracts\Server
|
||||
set_env('environmental_workerId', $workerId);
|
||||
if ($workerId < $server->setting['worker_num']) {
|
||||
$this->setProcessName(sprintf('Worker[%d].%d', $server->worker_pid, $workerId));
|
||||
Kiri::getDi()->get(Router::class)->scan_build_route();
|
||||
$this->collector->scan_build_route();
|
||||
$this->eventDispatch->dispatch(new OnWorkerStart($server, $workerId));
|
||||
set_env('environmental', Kiri::WORKER);
|
||||
} else {
|
||||
@@ -77,8 +89,6 @@ class OnServerWorker extends \Kiri\Server\Abstracts\Server
|
||||
*/
|
||||
public function onWorkerExit(Server $server, int $workerId)
|
||||
{
|
||||
set_env('state', 'exit');
|
||||
|
||||
$this->eventDispatch->dispatch(new OnWorkerExit($server, $workerId));
|
||||
}
|
||||
|
||||
|
||||
+6
-2
@@ -4,14 +4,17 @@
|
||||
namespace Kiri\Server;
|
||||
|
||||
use Exception;
|
||||
use JetBrains\PhpStorm\Pure;
|
||||
use Kiri;
|
||||
use Kiri\Abstracts\Config;
|
||||
use Kiri\Annotation\Inject;
|
||||
use Kiri\Events\EventDispatch;
|
||||
use Kiri\Exception\ConfigException;
|
||||
use Kiri\Message\Handler\Abstracts\HttpService;
|
||||
use Kiri\Message\Handler\Router;
|
||||
use Kiri\Server\Events\OnShutdown;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Kiri\Server\Events\OnServerBeforeStart;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
use Swoole\Coroutine;
|
||||
|
||||
@@ -94,6 +97,8 @@ class Server extends HttpService
|
||||
|
||||
$this->container->get(ProcessManager::class)->batch($processes);
|
||||
|
||||
$this->eventDispatch->dispatch(new OnServerBeforeStart());
|
||||
|
||||
return $this->manager->getServer()->start();
|
||||
}
|
||||
|
||||
@@ -143,9 +148,8 @@ class Server extends HttpService
|
||||
|
||||
/**
|
||||
* @return \Swoole\Http\Server|\Swoole\Server|\Swoole\WebSocket\Server|null
|
||||
* @throws \ReflectionException
|
||||
*/
|
||||
public function getServer(): \Swoole\Http\Server|\Swoole\Server|\Swoole\WebSocket\Server|null
|
||||
#[Pure] public function getServer(): \Swoole\Http\Server|\Swoole\Server|\Swoole\WebSocket\Server|null
|
||||
{
|
||||
return $this->manager->getServer();
|
||||
}
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@ class ServerCommand extends Command
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return $manager->start();
|
||||
return (int)$manager->start();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+4
-6
@@ -7,7 +7,6 @@ use Kiri\Abstracts\Component;
|
||||
use Kiri\Abstracts\Config;
|
||||
use Kiri\Annotation\Inject;
|
||||
use Kiri\Error\Logger;
|
||||
use Kiri\Events\EventDispatch;
|
||||
use Kiri\Exception\ConfigException;
|
||||
use Kiri\Server\Contract\OnCloseInterface;
|
||||
use Kiri\Server\Contract\OnConnectInterface;
|
||||
@@ -16,16 +15,15 @@ use Kiri\Server\Contract\OnHandshakeInterface;
|
||||
use Kiri\Server\Contract\OnMessageInterface;
|
||||
use Kiri\Server\Contract\OnPacketInterface;
|
||||
use Kiri\Server\Contract\OnReceiveInterface;
|
||||
use Kiri\Server\Events\OnServerBeforeStart;
|
||||
use Kiri\Server\Handler\OnPipeMessage;
|
||||
use Kiri\Server\Handler\OnServer;
|
||||
use Kiri\Server\Handler\OnServerManager;
|
||||
use Kiri\Server\Handler\OnServerReload;
|
||||
use Kiri\Server\Handler\OnServerWorker;
|
||||
use Kiri\Server\Tasker\OnServerTask;
|
||||
use Kiri\Websocket\WebSocketInterface;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
use ReflectionException;
|
||||
use Swoole\Http\Server as HServer;
|
||||
use Swoole\Process;
|
||||
use Swoole\Server;
|
||||
@@ -82,6 +80,9 @@ class ServerManager extends Component
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* @var array|string[]
|
||||
*/
|
||||
private array $eventInterface = [
|
||||
OnReceiveInterface::class => 'receive',
|
||||
OnPacketInterface::class => 'packet',
|
||||
@@ -95,11 +96,9 @@ class ServerManager extends Component
|
||||
|
||||
/**
|
||||
* @return Server|WServer|HServer|null
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
public function getServer(): Server|WServer|HServer|null
|
||||
{
|
||||
di(EventDispatch::class)->dispatch(new OnServerBeforeStart());
|
||||
return $this->server;
|
||||
}
|
||||
|
||||
@@ -264,7 +263,6 @@ class ServerManager extends Component
|
||||
*
|
||||
* $data->setStyle('box-double');
|
||||
* $data->setRows($array);
|
||||
* $data->render();
|
||||
*/
|
||||
private function createBaseServer(string $type, string $host, int $port, int $mode, array $settings = [])
|
||||
{
|
||||
|
||||
@@ -23,8 +23,6 @@ class ServerProviders extends Providers
|
||||
*/
|
||||
public function onImport(Application $application)
|
||||
{
|
||||
$application->set('server', ['class' => Server::class]);
|
||||
|
||||
$container = Kiri::getDi();
|
||||
|
||||
$console = $container->get(\Symfony\Component\Console\Application::class);
|
||||
|
||||
Reference in New Issue
Block a user