阶段性批量提交

This commit is contained in:
2026-01-05 14:54:06 +08:00
parent 917d76a87f
commit a697aab3e0
21 changed files with 1479 additions and 379 deletions

View File

@@ -0,0 +1,37 @@
using System;
namespace SHH.CameraDashboard;
/// <summary>
/// [Dashboard端] Service 启动参数构建器
/// 职责:生成标准化的命令行参数字符串,告诉 Service 如何反向连接
/// </summary>
public static class ServiceLaunchOptions
{
/// <summary>
/// 生成启动参数
/// </summary>
/// <param name="serviceId">给子服务起的唯一ID (如 "CamService_01")</param>
/// <param name="dashboardIp">Dashboard 的 IP (通常是 127.0.0.1)</param>
/// <param name="streamPort">Dashboard 监听视频的端口 (如 6000)</param>
/// <param name="serviceApiPort">指定子服务 WebAPI 监听的端口 (如 5005)</param>
/// <returns>命令行参数字符串</returns>
public static string BuildArguments(string serviceId, string dashboardIp, int streamPort, int serviceApiPort)
{
// 获取当前 Dashboard 进程 ID传给子进程做“父进程守护”
int parentPid = Environment.ProcessId;
// 拼接参数:
// --pid: 父进程ID
// --uris: 反向连接的目标地址 (Dashboard 的地址)
// --mode: 1 (Active模式代表 Service 主动连接 Dashboard)
// --ports: Service 自身的 WebAPI 端口 (防止与 Dashboard 冲突)
return $"" +
$"--pid {parentPid} " +
$"--id \"{serviceId}\" " +
$"--uris \"{dashboardIp},{streamPort}\" " +
$"--mode 1 " +
$"--ports \"{serviceApiPort},100\""; // 100 是保留位,暂不用
}
}