|
|
@@ -2460,13 +2460,13 @@ const messageInit = () => {
|
|
|
const messages = yMessage.value.toArray()
|
|
|
|
|
|
// 如果是首次进入且是创建者,清空所有同步状态
|
|
|
- if (isFirstEnter.value && isCreator.value && docSocket.value) {
|
|
|
- console.log('🧹 首次进入且为创建者,清空所有同步状态')
|
|
|
+ if ((isFirstEnter.value || messages.length > 2000) && isCreator.value && docSocket.value) {
|
|
|
+ console.log('🧹 首次进入且为创建者或消息条数超2000,保留最新5条消息,其他同步状态全部清空')
|
|
|
docSocket.value.transact(() => {
|
|
|
- // 清空消息
|
|
|
+ // 只保留最新5条消息
|
|
|
const messageArray = docSocket.value?.getArray?.('message')
|
|
|
- if (messageArray) {
|
|
|
- messageArray.delete(0, messageArray.length)
|
|
|
+ if (messageArray && messageArray.length > 2000) {
|
|
|
+ messageArray.delete(0, messageArray.length - 2000)
|
|
|
}
|
|
|
// 清空计时器状态
|
|
|
const timerStateMap = docSocket.value?.getMap?.('timerState')
|