laylink/bin/pop-server.php
2026-05-30 17:50:45 +08:00

36 lines
1.2 KiB
PHP
Executable File

#!/usr/bin/env php
<?php
declare(strict_types=1);
use LayLink\Server\PopServer;
use LayLink\Protocol\FrameCodec;
use LayLink\Util\Env;
use Workerman\Worker;
require dirname(__DIR__) . '/vendor/autoload.php';
Env::load(dirname(__DIR__) . '/.env');
FrameCodec::configureEncryption(
Env::get('LAYLINK_FRAME_ENCRYPTION', 'none'),
Env::get('LAYLINK_FRAME_ENCRYPTION_KEY', ''),
);
Worker::$logFile = dirname(__DIR__) . '/runtime/workerman.log';
Worker::$pidFile = dirname(__DIR__) . '/runtime/pop-server.pid';
$server = new PopServer(
Env::get('POP_AGENT_LISTEN', '0.0.0.0:9001'),
require dirname(__DIR__) . '/config/nodes.php',
require dirname(__DIR__) . '/config/policies.php',
Env::csv('POP_ALLOWED_AGENT_TRANSPORTS', ['tcp']),
Env::get('AUDIT_LOG', dirname(__DIR__) . '/runtime/audit.log'),
Env::int('LAYLINK_MAX_SEND_BUFFER_BYTES', 64 * 1024 * 1024, 1024 * 1024),
Env::int('LAYLINK_BACKPRESSURE_HIGH_WATERMARK_BYTES', 32 * 1024 * 1024, 512 * 1024),
Env::int('LAYLINK_DATA_CHUNK_BYTES', 1024 * 1024, 16 * 1024, 8 * 1024 * 1024),
Env::int('POP_AGENT_TCP_WORKERS', 1, 1, 64),
Env::int('POP_AGENT_KCP_WORKERS', 1, 1, 1),
);
$server->boot();
Worker::runAll();