From 2808da61a07bd16626adc8bebbd624b3605d3dba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A7=89?= Date: Sat, 21 Oct 2023 19:08:54 +0800 Subject: [PATCH] =?UTF-8?q?DEBUG:=20=E4=BF=AE=E6=AD=A3=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chat.js | 3 +-- src/main.js | 15 ++++----------- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/chat.js b/src/chat.js index 2b26265..3c160d9 100644 --- a/src/chat.js +++ b/src/chat.js @@ -138,15 +138,14 @@ export default class Chat { }) } async 筛选指定范围的消息({ start, end }) { - console.log('筛选指定范围的消息', start, end) const data = await values(this.store) return data.map(item => ({ timestamp: new Date(item.time).getTime(), ...item })).filter(item => { const timestamp = new Date(item.time).getTime() return timestamp >= start && timestamp <= end }) } + // 检查本地不存在的id,存储消息 async 合并消息列表(list) { - // 检查本地不存在的id,存储消息 const data = await values(this.store) const ids = data.map(item => item.id) list.filter(item => !ids.includes(item.id)).forEach(item => { diff --git a/src/main.js b/src/main.js index 59e6717..ad89dbb 100644 --- a/src/main.js +++ b/src/main.js @@ -148,10 +148,10 @@ const chat = new Chat({ // 与每个客户端都建立聊天信道 clientList.setChannel('chat', { - onopen: async event => { + onopen: async (event, client) => { const start = localStorage.getItem('store-chat-default') || 0 const end = new Date().getTime() - clientList.send('chat', JSON.stringify({ type: 'pull', start, end })) + clientList.sendto(client.id, 'chat', JSON.stringify({ type: 'pull', start, end })) }, onmessage: async (event, client) => { const data = JSON.parse(event.data) @@ -166,22 +166,15 @@ clientList.setChannel('chat', { return } if (data.type === 'pull') { - console.log(client.name, '请求拉取消息:', data) const list = (await chat.筛选指定范围的消息({ start: data.start, end: data.end })).map(item => { return { timestamp: new Date(item.time).getTime(), ...item } }) clientList.sendto(client.id, 'chat', JSON.stringify({ type: 'list', list })) + console.log(client.name, `拉取了 ${list.length} 条消息`) return } if (data.type === 'list') { - console.log(client.name, '发来消息列表:', data) - const timestamp = localStorage.getItem('store-chat-default') || 0 - data.list.filter(item => { - return item.timestamp < timestamp || item.timestamp > new Date().getTime() - }).forEach(item => { - console.log('要求的消息时段:', timestamp) - console.log('错误的消息时段:', item) - }) + console.log(client.name, `同步来 ${data.list.length} 条消息`) chat.合并消息列表(data.list) return }