对话逻辑修复
This commit is contained in:
+6
-17
@@ -40,7 +40,7 @@ export const useChatStore = defineStore('chat', () => {
|
||||
}
|
||||
}
|
||||
|
||||
// 发送消息:WebSocket推送+数据库保存
|
||||
// 发送消息:仅通过WebSocket推送,后端统一处理保存
|
||||
const sendMessage = async (content: string) => {
|
||||
if (!wsConnected.value) {
|
||||
console.error('WebSocket未连接,无法发送消息')
|
||||
@@ -52,7 +52,7 @@ export const useChatStore = defineStore('chat', () => {
|
||||
return
|
||||
}
|
||||
|
||||
// 添加用户消息
|
||||
// 添加用户消息到前端显示
|
||||
const userMessage = addMessage({
|
||||
content,
|
||||
type: 'user',
|
||||
@@ -60,28 +60,17 @@ export const useChatStore = defineStore('chat', () => {
|
||||
})
|
||||
|
||||
try {
|
||||
// WebSocket推送
|
||||
// 仅通过WebSocket推送,后端会统一处理消息保存
|
||||
webSocketService.sendChatMessage(content, currentSession.value?.id)
|
||||
|
||||
// 更新消息状态为已发送
|
||||
updateMessageStatus(userMessage.id, 'sent')
|
||||
|
||||
// 数据库保存
|
||||
if (currentSession.value?.id && userStore.user?.id) {
|
||||
await chatApi.createMessage({
|
||||
conversationId: currentSession.value.id,
|
||||
userId: userStore.user.id,
|
||||
content,
|
||||
contentType: 'TEXT',
|
||||
senderType: 'USER',
|
||||
senderId: userStore.user.id
|
||||
})
|
||||
// 注意:移除了重复的REST API调用,避免重复保存消息
|
||||
// 后端WebSocket处理器会统一保存用户消息到数据库
|
||||
|
||||
// 更新消息状态为已送达
|
||||
updateMessageStatus(userMessage.id, 'delivered')
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('消息发送或保存失败:', error)
|
||||
console.error('消息发送失败:', error)
|
||||
|
||||
// 更新消息状态为失败
|
||||
updateMessageStatus(userMessage.id, 'failed', '发送失败')
|
||||
|
||||
Reference in New Issue
Block a user