Files
kiri-core/Rpc/Service.php
T

49 lines
1.2 KiB
PHP
Raw Normal View History

2021-03-23 02:29:48 +08:00
<?php
namespace Rpc;
2021-03-23 02:38:20 +08:00
use HttpServer\Service\Http;
use HttpServer\Service\Packet;
use HttpServer\Service\Receive;
use HttpServer\Service\Websocket;
2021-03-23 02:29:48 +08:00
use Snowflake\Abstracts\Component;
use Snowflake\Abstracts\Config;
2021-03-23 10:30:14 +08:00
use Snowflake\Exception\ConfigException;
2021-03-23 02:29:48 +08:00
/**
* Class Service
* @package Rpc
*/
class Service extends Component
{
2021-03-23 10:30:14 +08:00
/**
* @param Packet|Websocket|Receive|Http|null $server
* @throws ConfigException
*/
2021-03-23 02:38:20 +08:00
public function instance(Packet|Websocket|Receive|null|Http $server): void
2021-03-23 02:29:48 +08:00
{
$services = Config::get('rpc.service', false, []);
if (empty($services)) {
return;
}
2021-03-23 10:49:19 +08:00
foreach ($services as $service) {
$mode = $service['mode'] ?? SWOOLE_SOCK_TCP6;
2021-03-23 10:51:44 +08:00
$rpcServer = $server->addlistener($service['host'], $service['port'], $mode);
$rpcServer->set([
'open_tcp_keepalive' => true,
'tcp_keepidle' => 30,
'tcp_keepinterval' => 10,
'tcp_keepcount' => 10,
'open_http_protocol' => false,
'open_websocket_protocol' => false,
]);
2021-03-23 10:49:19 +08:00
}
2021-03-23 02:29:48 +08:00
}
}