diff --git a/Application/Connections/Messages.cs b/Application/Connections/Messages.cs index 66a01d1..f3adeff 100644 --- a/Application/Connections/Messages.cs +++ b/Application/Connections/Messages.cs @@ -3,12 +3,12 @@ namespace Application.Connections; // 消息基类 public abstract class BaseMessage { - public string Type { get; set; } + public string MessageId { get; set; } = Guid.NewGuid().ToString(); public DateTime Timestamp { get; set; } = DateTime.Now; } // 网络状态消息 -public class NetworkStatusMessage : BaseMessage +public class NetworkStatusMessage : NotificationMessage { public string InterfaceName { get; set; } public string Status { get; set; } @@ -18,7 +18,7 @@ public class NetworkStatusMessage : BaseMessage } // 防火墙规则消息 -public class FirewallRuleMessage : BaseMessage +public class FirewallRuleMessage : NotificationMessage { public string RuleName { get; set; } public string Action { get; set; } @@ -31,13 +31,21 @@ public class FirewallRuleMessage : BaseMessage public class CommandMessage : BaseMessage { public string Command { get; set; } + public object Data { get; set; } } // 响应消息 -public class ResponseMessage : BaseMessage +public class ResponseMessage : NotificationMessage { public bool Success { get; set; } +} +/// +/// 通知消息 【服务端发往客户端的消息】 +/// +public class NotificationMessage : BaseMessage +{ + public string Type { get; set; } // 通知类型,如 "networkStatusUpdate", "firewallRuleChanged" + public object Data { get; set; } public string Message { get; set; } - public object Data { get; set; } } diff --git a/Application/Connections/WebSocketManager.cs b/Application/Connections/WebSocketManager.cs index d17af3f..5e9ceb8 100644 --- a/Application/Connections/WebSocketManager.cs +++ b/Application/Connections/WebSocketManager.cs @@ -125,6 +125,7 @@ public class WebSocketManager // 获取网络状态 RegisterHandler("getNetworkStatus", async (cmd, socket) => { + // cmd.Command; // 这里应该调用你的网络状态获取逻辑 var networkStatus = GetNetworkStatus(); await SendToClient(socket.ConnectionInfo.Id, new ResponseMessage @@ -187,7 +188,7 @@ public class WebSocketManager } // 发送消息给指定客户端 - public async Task SendToClient(Guid clientId, object message) + public async Task SendToClient(Guid clientId, ResponseMessage message) { if (_connections.TryGetValue(clientId, out var socket)) { @@ -208,7 +209,7 @@ public class WebSocketManager } // 广播消息给所有客户端 - public async Task BroadcastMessage(object message) + public async Task BroadcastMessage(ResponseMessage message) { var json = JsonSerializer.Serialize(message); var tasks = new List(); diff --git a/Application/Connections/WebSocketModel.cs b/Application/Connections/WebSocketModel.cs index b3ca4f0..7f4c4b4 100644 --- a/Application/Connections/WebSocketModel.cs +++ b/Application/Connections/WebSocketModel.cs @@ -31,7 +31,6 @@ public class Program Message = "自定义命令处理完成" }); }); - // 启动网络监控 networkMonitor.StartMonitoring(3000); diff --git a/NetVizor.sln.DotSettings.user b/NetVizor.sln.DotSettings.user index 4cade30..da346ee 100644 --- a/NetVizor.sln.DotSettings.user +++ b/NetVizor.sln.DotSettings.user @@ -5,4 +5,6 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded + ForceIncluded ForceIncluded \ No newline at end of file