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