diff --git a/src/pages/index/ChatPage.vue b/src/pages/index/ChatPage.vue index 6ff8ec4..4096263 100644 --- a/src/pages/index/ChatPage.vue +++ b/src/pages/index/ChatPage.vue @@ -333,6 +333,7 @@ export default { // 获取最近消息列表 getRecentMessageList() { + if(!this.currentUser) return; getRecentMessages() .then((response) => { this.recentChats = response.data.recentChats || []; @@ -535,6 +536,12 @@ export default { const message = data.message; const senderName = message.senderName; + // 给发消息的人返回 ACK + sendWebSocketMessage({ + type: "ack", + messageId: message.messageId + }); + const currentContactName = this.currentContact && this.currentContact.contactName; @@ -546,16 +553,16 @@ export default { time: message.createdAt, }); } else { - // 不是当前联系人,不加入 contactMessages,只更新最近聊天列表、未读数量 + // 不是当前联系人,不加入 contactMessages + // 如果是当前联系人列表中的成员,更新最近聊天列表、未读数量 + const contactIndex = this.contactList.findIndex( + (item) => item.contactName === senderName + ); + if(contactIndex === -1) return; + this.updateRecentChat("receive", senderName, message); } - // 返回 ACK - sendWebSocketMessage({ - type: "ack", - messageId: message.messageId, - senderName: this.currentUser.username - }); this.$nextTick(() => { this.scrollToBottom(); });