U:调整C#后端的WS内容
This commit is contained in:
1 parent
7ade2bd437
commit
6d9a6ac3ee
4 files changed
+18
-8
No files matched your search
@@ -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; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 通知消息 【服务端发往客户端的消息】
|
||||
/// </summary>
|
||||
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; }
|
||||
}
|
||||
@@ -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<bool> SendToClient(Guid clientId, object message)
|
||||
public async Task<bool> 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<Task>();
|
||||
|
||||
@@ -31,7 +31,6 @@ public class Program
|
||||
Message = "自定义命令处理完成"
|
||||
});
|
||||
});
|
||||
|
||||
// 启动网络监控
|
||||
networkMonitor.StartMonitoring(3000);
|
||||
|
||||
|
||||
@@ -5,4 +5,6 @@
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANetworkInterface_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F9c72a65889eb40ae9d8e0f130d1572e0268a0_003F34_003F49f5e6ff_003FNetworkInterface_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AProcess_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4a26a752ec6249c4a090905d31c0cdfa528a0_003F8f_003F7037e590_003FProcess_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AReadOnlyCollectionBase_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F4c1fd115dbe5414db1b4da1de3e96c5819910_003F04_003Fcae9fe22_003FReadOnlyCollectionBase_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATimer_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F211e6f3b24fa438a92f1815153647ce2c8f908_003Fa8_003F04476824_003FTimer_002Ecs_002Fz_003A2_002D1/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATimer_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Ffe2ae574758f4da99bb3bfcba69a0a40b6928_003F7f_003Fb5cb1e21_003FTimer_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AWebView2_002Ecs_002Fl_003AC_0021_003FUsers_003Fcharlatans_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F8aca2f2c90e1454c825fc8b69c53a97e14268_003F06_003F22dc0e77_003FWebView2_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>
|
||||
Reference in new issue
Block a user