新增消息序列号支持,优化消息发送和接收逻辑,更新消息状态处理,提升代码可读性和用户体验。

This commit is contained in:
2025-10-25 18:42:17 +08:00
parent e409618b7a
commit 5f1a1e9f0e
8 changed files with 71 additions and 22 deletions

View File

@@ -101,4 +101,6 @@ export interface WeChatState {
// ==================== 消息接收处理 ====================
/** 接收新消息处理 */
receivedMsg: (message: ChatRecord) => void;
/** 查找消息 */
findMessageBySeq: (seq: number) => ChatRecord | undefined;
}

View File

@@ -84,6 +84,9 @@ export const useWeChatStore = create<WeChatState>()(
}
}
},
findMessageBySeq: (seq: number) => {
return get().currentMessages.find(msg => msg.seq === seq);
},
/** 更新指定消息内容 */
updateMessage: (messageId, updates) => {
set(state => ({

View File

@@ -11,6 +11,8 @@ type MessageHandler = (message: WebSocketMessage) => void;
const addMessage = useWeChatStore.getState().addMessage;
const recallMessage = useWeChatStore.getState().recallMessage;
const receivedMsg = useWeChatStore.getState().receivedMsg;
const findMessageBySeq = useWeChatStore.getState().findMessageBySeq;
const updateMessage = useWeChatStore.getState().updateMessage;
const updateMomentCommonLoading =
useWeChatStore.getState().updateMomentCommonLoading;
const addMomentCommon = useWeChatStore.getState().addMomentCommon;
@@ -41,13 +43,18 @@ const messageHandlers: Record<string, MessageHandler> = {
},
// 发送消息响应
CmdSendMessageResp: message => {
console.log("发送消息响应", message);
addMessage(message.friendMessage || message.chatroomMessage);
// 在这里添加具体的处理逻辑
const msg = findMessageBySeq(message.seq);
if (msg) {
updateMessage(message.seq, {
sendStatus: 1,
id: message.friendMessage?.id || message.chatroomMessage?.id,
});
}
},
CmdSendMessageResult: message => {
console.log("发送消息结果", message);
// 在这里添加具体的处理逻辑
updateMessage(message.friendMessageId, {
sendStatus: 0,
});
},
// 接收消息响应
CmdReceiveMessageResp: message => {