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