Compare commits
28 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2939d58585 | |||
| 146da1d00c | |||
| 51babeddc1 | |||
| 550197de96 | |||
| b5ad99332d | |||
| e9b51ffb1e | |||
| 8c9de79027 | |||
| 85c973469f | |||
| db8d9a8376 | |||
| 18b4e79f5f | |||
| 0b7f380298 | |||
| ea400c4ea5 | |||
| 07cfb62bb8 | |||
| a5efa0813f | |||
| d1f2912324 | |||
| ba0acf8f00 | |||
| 2788008fa1 | |||
| 5beee8352d | |||
| 35859fead1 | |||
| 0031d73eff | |||
| 89807fe548 | |||
| 9c28ce91ae | |||
| 7ed01ba893 | |||
| 926a8c0719 | |||
| 688a30531a | |||
| 1ff9d7f210 | |||
| da038f4fd8 | |||
| de20fa9582 |
@@ -4,7 +4,7 @@
|
|||||||
namespace Server\Abstracts;
|
namespace Server\Abstracts;
|
||||||
|
|
||||||
|
|
||||||
use Note\Inject;
|
use Kiri\Annotation\Inject;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Kiri\Abstracts\Config;
|
use Kiri\Abstracts\Config;
|
||||||
use Kiri\Exception\ConfigException;
|
use Kiri\Exception\ConfigException;
|
||||||
|
|||||||
@@ -13,10 +13,9 @@ interface OnCloseInterface
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Server $server
|
|
||||||
* @param int $fd
|
* @param int $fd
|
||||||
*/
|
*/
|
||||||
public function onClose(Server $server, int $fd): void;
|
public function onClose(int $fd): void;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,9 @@ interface OnDisconnectInterface
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Server $server
|
|
||||||
* @param int $fd
|
* @param int $fd
|
||||||
*/
|
*/
|
||||||
public function onDisconnect(Server $server, int $fd): void;
|
public function onDisconnect(int $fd): void;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace Server\Contract;
|
namespace Server\Contract;
|
||||||
|
|
||||||
use Swoole\Server;
|
use Kiri\Websocket\WebSocketInterface;
|
||||||
use Swoole\WebSocket\Frame;
|
use Swoole\WebSocket\Frame;
|
||||||
|
|
||||||
interface OnMessageInterface
|
interface OnMessageInterface
|
||||||
@@ -10,10 +10,9 @@ interface OnMessageInterface
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Server $server
|
|
||||||
* @param Frame $frame
|
* @param Frame $frame
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function onMessage(Server $server, Frame $frame): void;
|
public function onMessage(Frame $frame): void;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,16 +3,14 @@
|
|||||||
namespace Server\Contract;
|
namespace Server\Contract;
|
||||||
|
|
||||||
use Swoole\Http\Request;
|
use Swoole\Http\Request;
|
||||||
use Swoole\WebSocket\Server;
|
|
||||||
|
|
||||||
interface OnOpenInterface
|
interface OnOpenInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Server $server
|
* @param Request $request
|
||||||
* @param Request $request
|
*/
|
||||||
*/
|
public function onOpen(Request $request): void;
|
||||||
public function onOpen(Server $server, Request $request): void;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace Server\Handler;
|
namespace Server\Handler;
|
||||||
|
|
||||||
use Note\Inject;
|
use Kiri\Annotation\Inject;
|
||||||
use Server\Abstracts\Server;
|
use Server\Abstracts\Server;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Server\Contract\OnPipeMessageInterface;
|
use Server\Contract\OnPipeMessageInterface;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace Server\Handler;
|
namespace Server\Handler;
|
||||||
|
|
||||||
use Note\Inject;
|
use Kiri\Annotation\Inject;
|
||||||
use Kiri\Events\EventDispatch;
|
use Kiri\Events\EventDispatch;
|
||||||
use Kiri\Exception\ConfigException;
|
use Kiri\Exception\ConfigException;
|
||||||
use ReflectionException;
|
use ReflectionException;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace Server\Handler;
|
namespace Server\Handler;
|
||||||
|
|
||||||
use Note\Inject;
|
use Kiri\Annotation\Inject;
|
||||||
use Kiri\Events\EventDispatch;
|
use Kiri\Events\EventDispatch;
|
||||||
use ReflectionException;
|
use ReflectionException;
|
||||||
use Server\Abstracts\Server;
|
use Server\Abstracts\Server;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace Server\Handler;
|
namespace Server\Handler;
|
||||||
|
|
||||||
use Note\Inject;
|
use Kiri\Annotation\Inject;
|
||||||
use Kiri\Events\EventDispatch;
|
use Kiri\Events\EventDispatch;
|
||||||
use Server\Events\OnAfterReload;
|
use Server\Events\OnAfterReload;
|
||||||
use Server\Events\OnBeforeReload;
|
use Server\Events\OnBeforeReload;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ use Kiri\Abstracts\Config;
|
|||||||
use Kiri\Core\Help;
|
use Kiri\Core\Help;
|
||||||
use Kiri\Events\EventDispatch;
|
use Kiri\Events\EventDispatch;
|
||||||
use Kiri\Kiri;
|
use Kiri\Kiri;
|
||||||
use Note\Inject;
|
use Kiri\Annotation\Inject;
|
||||||
use Server\Events\OnAfterWorkerStart;
|
use Server\Events\OnAfterWorkerStart;
|
||||||
use Server\Events\OnBeforeWorkerStart;
|
use Server\Events\OnBeforeWorkerStart;
|
||||||
use Server\Events\OnTaskerStart as OnTaskStart;
|
use Server\Events\OnTaskerStart as OnTaskStart;
|
||||||
|
|||||||
+1
-2
@@ -9,7 +9,7 @@ use Kiri\Abstracts\Config;
|
|||||||
use Kiri\Events\EventDispatch;
|
use Kiri\Events\EventDispatch;
|
||||||
use Kiri\Exception\ConfigException;
|
use Kiri\Exception\ConfigException;
|
||||||
use Kiri\Kiri;
|
use Kiri\Kiri;
|
||||||
use Note\Inject;
|
use Kiri\Annotation\Inject;
|
||||||
use Psr\Container\ContainerExceptionInterface;
|
use Psr\Container\ContainerExceptionInterface;
|
||||||
use Psr\Container\NotFoundExceptionInterface;
|
use Psr\Container\NotFoundExceptionInterface;
|
||||||
use Server\Events\OnShutdown;
|
use Server\Events\OnShutdown;
|
||||||
@@ -137,7 +137,6 @@ class Server extends HttpService
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return ServerManager
|
* @return ServerManager
|
||||||
* @throws \ReflectionException
|
|
||||||
*/
|
*/
|
||||||
private function manager(): ServerManager
|
private function manager(): ServerManager
|
||||||
{
|
{
|
||||||
|
|||||||
+9
-9
@@ -4,15 +4,14 @@ declare(strict_types=1);
|
|||||||
namespace Server;
|
namespace Server;
|
||||||
|
|
||||||
|
|
||||||
use Note\Inject;
|
|
||||||
use Exception;
|
use Exception;
|
||||||
use Kiri\Abstracts\Config;
|
use Kiri\Abstracts\Config;
|
||||||
use Kiri\Events\EventDispatch;
|
use Kiri\Events\EventDispatch;
|
||||||
use Kiri\Exception\ConfigException;
|
use Kiri\Exception\ConfigException;
|
||||||
use Kiri\Kiri;
|
use Kiri\Kiri;
|
||||||
|
use Kiri\Annotation\Inject;
|
||||||
use Psr\Container\ContainerExceptionInterface;
|
use Psr\Container\ContainerExceptionInterface;
|
||||||
use Psr\Container\NotFoundExceptionInterface;
|
use Psr\Container\NotFoundExceptionInterface;
|
||||||
use Server\Events\OnServerBeforeStart;
|
|
||||||
use Swoole\Coroutine;
|
use Swoole\Coroutine;
|
||||||
use Symfony\Component\Console\Command\Command;
|
use Symfony\Component\Console\Command\Command;
|
||||||
use Symfony\Component\Console\Input\InputArgument;
|
use Symfony\Component\Console\Input\InputArgument;
|
||||||
@@ -65,19 +64,19 @@ class ServerCommand extends Command
|
|||||||
$manager = Kiri::app()->getServer();
|
$manager = Kiri::app()->getServer();
|
||||||
$manager->setDaemon((int)!is_null($input->getOption('daemon')));
|
$manager->setDaemon((int)!is_null($input->getOption('daemon')));
|
||||||
if (is_null($input->getArgument('action'))) {
|
if (is_null($input->getArgument('action'))) {
|
||||||
$input->setArgument('action', 'restart');
|
throw new Exception('I don\'t know what I want to do.');
|
||||||
}
|
}
|
||||||
if (!in_array($input->getArgument('action'), self::ACTIONS)) {
|
if (!in_array($input->getArgument('action'), self::ACTIONS)) {
|
||||||
throw new Exception('I don\'t know what I want to do.');
|
throw new Exception('I don\'t know what I want to do.');
|
||||||
}
|
}
|
||||||
if ($manager->isRunner() && $input->getArgument('action') == 'start') {
|
if ($input->getArgument('action') == 'restart') {
|
||||||
throw new Exception('Service is running. Please use restart.');
|
$manager->shutdown();
|
||||||
|
}
|
||||||
|
if ($input->getArgument('action') != 'stop') {
|
||||||
|
return $this->generate_runtime_builder($manager);
|
||||||
}
|
}
|
||||||
$manager->shutdown();
|
$manager->shutdown();
|
||||||
if ($input->getArgument('action') == 'stop') {
|
return 0;
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return $this->generate_runtime_builder($manager);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -87,6 +86,7 @@ class ServerCommand extends Command
|
|||||||
private function configure_set()
|
private function configure_set()
|
||||||
{
|
{
|
||||||
$enable_coroutine = Config::get('servers.settings.enable_coroutine', false);
|
$enable_coroutine = Config::get('servers.settings.enable_coroutine', false);
|
||||||
|
Config::set('servers.settings.enable_coroutine', true);
|
||||||
if ($enable_coroutine != true) {
|
if ($enable_coroutine != true) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
+20
-3
@@ -9,7 +9,7 @@ use Kiri\Error\Logger;
|
|||||||
use Kiri\Events\EventDispatch;
|
use Kiri\Events\EventDispatch;
|
||||||
use Kiri\Exception\ConfigException;
|
use Kiri\Exception\ConfigException;
|
||||||
use Kiri\Kiri;
|
use Kiri\Kiri;
|
||||||
use Note\Inject;
|
use Kiri\Annotation\Inject;
|
||||||
use Psr\Container\ContainerExceptionInterface;
|
use Psr\Container\ContainerExceptionInterface;
|
||||||
use Psr\Container\NotFoundExceptionInterface;
|
use Psr\Container\NotFoundExceptionInterface;
|
||||||
use ReflectionException;
|
use ReflectionException;
|
||||||
@@ -34,6 +34,10 @@ use Swoole\Process;
|
|||||||
use Swoole\Server;
|
use Swoole\Server;
|
||||||
use Swoole\Server\Port;
|
use Swoole\Server\Port;
|
||||||
use Swoole\WebSocket\Server as WServer;
|
use Swoole\WebSocket\Server as WServer;
|
||||||
|
use Symfony\Component\Console\Helper\Table;
|
||||||
|
use Symfony\Component\Console\Helper\TableSeparator;
|
||||||
|
use Symfony\Component\Console\Output\ConsoleOutput;
|
||||||
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -136,7 +140,6 @@ class ServerManager extends Component
|
|||||||
* @throws ConfigException
|
* @throws ConfigException
|
||||||
* @throws ContainerExceptionInterface
|
* @throws ContainerExceptionInterface
|
||||||
* @throws NotFoundExceptionInterface
|
* @throws NotFoundExceptionInterface
|
||||||
* @throws ReflectionException
|
|
||||||
*/
|
*/
|
||||||
public function initBaseServer($configs, int $daemon = 0): void
|
public function initBaseServer($configs, int $daemon = 0): void
|
||||||
{
|
{
|
||||||
@@ -197,7 +200,6 @@ class ServerManager extends Component
|
|||||||
* @throws ConfigException
|
* @throws ConfigException
|
||||||
* @throws ContainerExceptionInterface
|
* @throws ContainerExceptionInterface
|
||||||
* @throws NotFoundExceptionInterface
|
* @throws NotFoundExceptionInterface
|
||||||
* @throws ReflectionException
|
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private function startListenerHandler(ServerManager $context, array $config, int $daemon = 0)
|
private function startListenerHandler(ServerManager $context, array $config, int $daemon = 0)
|
||||||
@@ -289,6 +291,21 @@ class ServerManager extends Component
|
|||||||
$this->server = new $match($host, $port, SWOOLE_PROCESS, $mode);
|
$this->server = new $match($host, $port, SWOOLE_PROCESS, $mode);
|
||||||
$this->server->set(array_merge(Config::get('server.settings', []), $settings['settings']));
|
$this->server->set(array_merge(Config::get('server.settings', []), $settings['settings']));
|
||||||
|
|
||||||
|
$data = new Table($this->container->get(OutputInterface::class));
|
||||||
|
$data->setHeaders(['key', 'value']);
|
||||||
|
|
||||||
|
$array = [];
|
||||||
|
foreach ($this->server->setting as $key => $value) {
|
||||||
|
$array[] = [$key, $value];
|
||||||
|
$array[] = new TableSeparator();
|
||||||
|
}
|
||||||
|
|
||||||
|
array_pop($array);
|
||||||
|
|
||||||
|
$data->setStyle('box-double');
|
||||||
|
$data->setRows($array);
|
||||||
|
$data->render();
|
||||||
|
|
||||||
$id = Config::get('id', 'system-service');
|
$id = Config::get('id', 'system-service');
|
||||||
|
|
||||||
$this->logger->debug(sprintf('[%s].' . $type . ' service %s::%d start', $id, $host, $port));
|
$this->logger->debug(sprintf('[%s].' . $type . ' service %s::%d start', $id, $host, $port));
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
namespace Server\Tasker;
|
namespace Server\Tasker;
|
||||||
|
|
||||||
|
|
||||||
use Note\Inject;
|
use Kiri\Annotation\Inject;
|
||||||
use Kiri\Abstracts\Logger;
|
use Kiri\Abstracts\Logger;
|
||||||
use Kiri\Exception\ConfigException;
|
use Kiri\Exception\ConfigException;
|
||||||
use Server\Contract\OnTaskInterface;
|
use Server\Contract\OnTaskInterface;
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@
|
|||||||
"psr/http-server-middleware": "^1.0",
|
"psr/http-server-middleware": "^1.0",
|
||||||
"psr/http-message": "^1.0",
|
"psr/http-message": "^1.0",
|
||||||
"psr/event-dispatcher": "^1.0",
|
"psr/event-dispatcher": "^1.0",
|
||||||
"game-worker/kiri-http-message": "^v1.2"
|
"game-worker/kiri-http-message": "~v2.0"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
|
|||||||
Reference in New Issue
Block a user