implement multi-protocol async server based on ratchet library #1

This commit is contained in:
yggverse 2024-05-06 04:59:42 +03:00
parent 296525aac3
commit ec60ef5e5b
8 changed files with 707 additions and 387 deletions

59
src/server.php Normal file
View file

@ -0,0 +1,59 @@
<?php
// Load dependencies
require_once __DIR__ .
DIRECTORY_SEPARATOR . '..'.
DIRECTORY_SEPARATOR . 'vendor' .
DIRECTORY_SEPARATOR . 'autoload.php';
// Init environment
$environment = new \Yggverse\Next\Model\Environment(
$argv,
json_decode(
file_get_contents(
__DIR__ .
DIRECTORY_SEPARATOR . '..'.
DIRECTORY_SEPARATOR . 'default.json'
),
true
)
);
// Init filesystem
$filesystem = new \Yggverse\Next\Model\Filesystem(
$environment->get('path')
);
// Start server
try
{
switch ($environment->get('type'))
{
case 'nex':
$server = \Ratchet\Server\IoServer::factory(
new \Yggverse\Next\Controller\Nex(
$environment,
$filesystem
),
$environment->get('port'),
$environment->get('host')
);
$server->run();
break;
default:
throw new \Exception(
_('valid server type required!')
);
}
}
// Show help
catch (\Exception $exception)
{
// @TODO
}