From 5da9d9f4e28db7d244b6fb09fdcb63e787d2c5eb Mon Sep 17 00:00:00 2001 From: SikongJueluo Date: Mon, 21 Jul 2025 19:19:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=9C=8D=E5=8A=A1=E7=AB=AF=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=9C=AC=E5=9C=B0IP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/Program.cs | 11 ++++++-- server/Properties/launchSettings.json | 4 +-- server/src/Common/Global.cs | 20 ++++++++++++++ .../src/Controllers/VideoStreamController.cs | 10 +++---- server/src/Services/HttpVideoStreamService.cs | 2 +- src/APIClient.ts | 26 +++++++++---------- 6 files changed, 50 insertions(+), 23 deletions(-) create mode 100644 server/src/Common/Global.cs diff --git a/server/Program.cs b/server/Program.cs index a226845..d5d04e1 100644 --- a/server/Program.cs +++ b/server/Program.cs @@ -59,7 +59,7 @@ try IssuerSigningKey = new SymmetricSecurityKey( Encoding.UTF8.GetBytes("my secret key 1234567890my secret key 1234567890")), }; - options.Authority = "http://localhost:5000"; + options.Authority = $"http://{Global.localhost}:5000"; options.RequireHttpsMetadata = false; }); // Add JWT Token Authorization Policy @@ -175,7 +175,14 @@ try app.UseAuthorization(); // Swagger - app.UseOpenApi(); + app.UseOpenApi(settings => + { + settings.PostProcess = (document, httpRequest) => + { + document.Servers.Clear(); + document.Servers.Add(new NSwag.OpenApiServer { Url = $"http://{Global.localhost}:5000" }); + }; + }); app.UseSwaggerUi(); // Router diff --git a/server/Properties/launchSettings.json b/server/Properties/launchSettings.json index fca3ffd..b98351a 100644 --- a/server/Properties/launchSettings.json +++ b/server/Properties/launchSettings.json @@ -5,7 +5,7 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "applicationUrl": "http://localhost:5000", + "applicationUrl": "http://0.0.0.0:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.SpaProxy" @@ -15,7 +15,7 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "applicationUrl": "https://localhost:7278;http://localhost:5000", + "applicationUrl": "https://0.0.0.0:7278;http://0.0.0.0:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.SpaProxy" diff --git a/server/src/Common/Global.cs b/server/src/Common/Global.cs new file mode 100644 index 0000000..0a3ce73 --- /dev/null +++ b/server/src/Common/Global.cs @@ -0,0 +1,20 @@ +using System.Net; +using System.Net.Sockets; + +public static class Global { + + public static readonly string localhost = "172.31.2.228"; + + public static string GetLocalIPAddress() + { + var host = Dns.GetHostEntry(Dns.GetHostName()); + foreach (var ip in host.AddressList) + { + if (ip.AddressFamily == AddressFamily.InterNetwork) + { + return ip.ToString(); + } + } + throw new Exception("No network adapters with an IPv4 address in the system!"); + } +} diff --git a/server/src/Controllers/VideoStreamController.cs b/server/src/Controllers/VideoStreamController.cs index bcb4ac2..c1cc728 100644 --- a/server/src/Controllers/VideoStreamController.cs +++ b/server/src/Controllers/VideoStreamController.cs @@ -148,10 +148,10 @@ public class VideoStreamController : ControllerBase FrameWidth = _videoStreamService.FrameWidth, FrameHeight = _videoStreamService.FrameHeight, Format = "MJPEG", - HtmlUrl = $"http://localhost:{_videoStreamService.ServerPort}/video-feed.html", - MjpegUrl = $"http://localhost:{_videoStreamService.ServerPort}/video-stream", - SnapshotUrl = $"http://localhost:{_videoStreamService.ServerPort}/snapshot", - UsbCameraUrl = $"http://localhost:{_videoStreamService.ServerPort}/usb-camera" + HtmlUrl = $"http://{Global.localhost}:{_videoStreamService.ServerPort}/video-feed.html", + MjpegUrl = $"http://{Global.localhost}:{_videoStreamService.ServerPort}/video-stream", + SnapshotUrl = $"http://{Global.localhost}:{_videoStreamService.ServerPort}/snapshot", + UsbCameraUrl = $"http://{Global.localhost}:{_videoStreamService.ServerPort}/usb-camera" }; return TypedResults.Ok(result); } @@ -267,7 +267,7 @@ public class VideoStreamController : ControllerBase using (var httpClient = new HttpClient()) { httpClient.Timeout = TimeSpan.FromSeconds(2); // 设置较短的超时时间 - var response = await httpClient.GetAsync($"http://localhost:{_videoStreamService.ServerPort}/"); + var response = await httpClient.GetAsync($"http://{Global.localhost}:{_videoStreamService.ServerPort}/"); // 只要能连接上就认为成功,不管返回状态 isConnected = response.IsSuccessStatusCode; diff --git a/server/src/Services/HttpVideoStreamService.cs b/server/src/Services/HttpVideoStreamService.cs index 88b1fe2..960e8b3 100644 --- a/server/src/Services/HttpVideoStreamService.cs +++ b/server/src/Services/HttpVideoStreamService.cs @@ -311,7 +311,7 @@ public class HttpVideoStreamService : BackgroundService // 创建 HTTP 监听器 _httpListener = new HttpListener(); - _httpListener.Prefixes.Add($"http://localhost:{_serverPort}/"); + _httpListener.Prefixes.Add($"http://{Global.localhost}:{_serverPort}/"); _httpListener.Start(); logger.Info("HTTP 视频流服务已启动,监听端口: {Port}", _serverPort); diff --git a/src/APIClient.ts b/src/APIClient.ts index 35c4a0f..057715b 100644 --- a/src/APIClient.ts +++ b/src/APIClient.ts @@ -15,7 +15,7 @@ export class VideoStreamClient { constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) { this.http = http ? http : window as any; - this.baseUrl = baseUrl ?? "http://localhost:5000"; + this.baseUrl = baseUrl ?? "http://172.31.2.228:5000"; } /** @@ -638,7 +638,7 @@ export class BsdlParserClient { constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) { this.http = http ? http : window as any; - this.baseUrl = baseUrl ?? "http://localhost:5000"; + this.baseUrl = baseUrl ?? "http://172.31.2.228:5000"; } /** @@ -691,7 +691,7 @@ export class DataClient { constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) { this.http = http ? http : window as any; - this.baseUrl = baseUrl ?? "http://localhost:5000"; + this.baseUrl = baseUrl ?? "http://172.31.2.228:5000"; } /** @@ -1404,7 +1404,7 @@ export class DDSClient { constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) { this.http = http ? http : window as any; - this.baseUrl = baseUrl ?? "http://localhost:5000"; + this.baseUrl = baseUrl ?? "http://172.31.2.228:5000"; } /** @@ -1644,7 +1644,7 @@ export class JtagClient { constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) { this.http = http ? http : window as any; - this.baseUrl = baseUrl ?? "http://localhost:5000"; + this.baseUrl = baseUrl ?? "http://172.31.2.228:5000"; } /** @@ -2164,7 +2164,7 @@ export class LogicAnalyzerClient { constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) { this.http = http ? http : window as any; - this.baseUrl = baseUrl ?? "http://localhost:5000"; + this.baseUrl = baseUrl ?? "http://172.31.2.228:5000"; } /** @@ -2609,7 +2609,7 @@ export class MatrixKeyClient { constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) { this.http = http ? http : window as any; - this.baseUrl = baseUrl ?? "http://localhost:5000"; + this.baseUrl = baseUrl ?? "http://172.31.2.228:5000"; } /** @@ -2793,7 +2793,7 @@ export class NetConfigClient { constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) { this.http = http ? http : window as any; - this.baseUrl = baseUrl ?? "http://localhost:5000"; + this.baseUrl = baseUrl ?? "http://172.31.2.228:5000"; } /** @@ -3419,7 +3419,7 @@ export class OscilloscopeApiClient { constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) { this.http = http ? http : window as any; - this.baseUrl = baseUrl ?? "http://localhost:5000"; + this.baseUrl = baseUrl ?? "http://172.31.2.228:5000"; } /** @@ -3853,7 +3853,7 @@ export class PowerClient { constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) { this.http = http ? http : window as any; - this.baseUrl = baseUrl ?? "http://localhost:5000"; + this.baseUrl = baseUrl ?? "http://172.31.2.228:5000"; } /** @@ -3925,7 +3925,7 @@ export class RemoteUpdateClient { constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) { this.http = http ? http : window as any; - this.baseUrl = baseUrl ?? "http://localhost:5000"; + this.baseUrl = baseUrl ?? "http://172.31.2.228:5000"; } /** @@ -4266,7 +4266,7 @@ export class TutorialClient { constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) { this.http = http ? http : window as any; - this.baseUrl = baseUrl ?? "http://localhost:5000"; + this.baseUrl = baseUrl ?? "http://172.31.2.228:5000"; } /** @@ -4315,7 +4315,7 @@ export class UDPClient { constructor(baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise }) { this.http = http ? http : window as any; - this.baseUrl = baseUrl ?? "http://localhost:5000"; + this.baseUrl = baseUrl ?? "http://172.31.2.228:5000"; } /**