diff --git a/src/CellularManagement.WebSocket/Handlers/NotificationMessageHandler.cs b/src/CellularManagement.WebSocket/Handlers/NotificationMessageHandler.cs
index 16e17fc..899e827 100644
--- a/src/CellularManagement.WebSocket/Handlers/NotificationMessageHandler.cs
+++ b/src/CellularManagement.WebSocket/Handlers/NotificationMessageHandler.cs
@@ -22,7 +22,7 @@ public class NotificationMessageHandler : IWebSocketMessageHandler
_logger.LogDebug("原始消息数据:{Data}", System.Text.Encoding.UTF8.GetString(message.Data));
await Task.Delay(100); // 模拟异步处理
-
+
var response = new WebSocketMessage
{
ConnectionId = message.ConnectionId,
@@ -36,7 +36,8 @@ public class NotificationMessageHandler : IWebSocketMessageHandler
timestamp = DateTime.UtcNow
}
})),
- MessageType = System.Net.WebSockets.WebSocketMessageType.Text
+ MessageType = System.Net.WebSockets.WebSocketMessageType.Text,
+ NeedQueue = false
};
_logger.LogInformation("通知消息处理完成,连接ID:{ConnectionId},响应数据大小:{DataSize}字节",
diff --git a/src/CellularManagement.WebSocket/Models/ChatMessage.cs b/src/CellularManagement.WebSocket/Models/ChatMessage.cs
new file mode 100644
index 0000000..f77b39f
--- /dev/null
+++ b/src/CellularManagement.WebSocket/Models/ChatMessage.cs
@@ -0,0 +1,39 @@
+using System;
+
+namespace CellularManagement.WebSocket.Models;
+
+///
+/// 聊天消息模型
+///
+public class ChatMessage
+{
+ ///
+ /// 发送者ID
+ ///
+ public string SenderId { get; set; } = string.Empty;
+
+ ///
+ /// 发送者名称
+ ///
+ public string SenderName { get; set; } = string.Empty;
+
+ ///
+ /// 消息内容
+ ///
+ public string Content { get; set; } = string.Empty;
+
+ ///
+ /// 消息类型(私聊/群聊)
+ ///
+ public string MessageType { get; set; } = "group";
+
+ ///
+ /// 接收者ID(私聊时使用)
+ ///
+ public string? ReceiverId { get; set; }
+
+ ///
+ /// 发送时间
+ ///
+ public DateTime Timestamp { get; set; } = DateTime.UtcNow;
+}
\ No newline at end of file
diff --git a/src/CellularManagement.WebSocket/Models/WebSocketMessage.cs b/src/CellularManagement.WebSocket/Models/WebSocketMessage.cs
index bdaacf3..d0fc052 100644
--- a/src/CellularManagement.WebSocket/Models/WebSocketMessage.cs
+++ b/src/CellularManagement.WebSocket/Models/WebSocketMessage.cs
@@ -12,8 +12,7 @@ public record WebSocketMessage
public WebSocketMessageType MessageType { get; init; } // 消息类型
public DateTime Timestamp { get; init; } = DateTime.UtcNow; // 时间戳
public int Priority { get; init; } = 0; // 优先级
-
- public bool IsComplete { get; set; }
-
- public bool IsError { get; set; }
+ public bool IsComplete { get; set; } // 消息是否完整
+ public bool IsError { get; set; } // 是否是错误消息
+ public bool NeedQueue { get; init; } = true; // 是否需要加入队列发送,默认为 true
}
\ No newline at end of file
diff --git a/src/CellularManagement.WebSocket/Services/IncomingMessageProcessor.cs b/src/CellularManagement.WebSocket/Services/IncomingMessageProcessor.cs
index 42fbad8..bc314a0 100644
--- a/src/CellularManagement.WebSocket/Services/IncomingMessageProcessor.cs
+++ b/src/CellularManagement.WebSocket/Services/IncomingMessageProcessor.cs
@@ -218,12 +218,16 @@ public class IncomingMessageProcessor : IDisposable
_logger.LogDebug("消息处理完成,连接ID:{ConnectionId},处理结果:{Processed}",
message.ConnectionId, processedMessage != null);
- if (processedMessage != null)
+ if (processedMessage?.NeedQueue == true)
{
// 将处理后的消息入队
await _messageQueueManager.TryQueueOutgoingMessage(processedMessage);
_logger.LogDebug("处理后的消息已入队,连接ID:{ConnectionId}", message.ConnectionId);
}
+ else
+ {
+ _logger.LogDebug("消息不需要入队或为空,连接ID:{ConnectionId}", message.ConnectionId);
+ }
}
catch (Exception ex)
{