# TikTok 重連聊天防重播
`TikTokChatGuard.mjs` 僅套用於 `isTK` 的 CHAT 事件,在翻譯、通知、統計和
Socket 發送前執行。禮物連擊及其他事件不受此過濾器影響。
- 優先讀取 `common.msgId`、`common.createTime`,相容頂層同名欄位。
- ID 使用字串保存,避免大型整數精度損失;最多保存 10,000 筆、30 分鐘,
在同一程序內跨重連保留,不跨程序重啟保存。
- 每次實際呼叫重連之前,設定「本機目前時間減 3 秒」為界線;平台發送
時間早於此界線的聊天忽略,即使 ID 未見過也忽略。
- 秒和毫秒時間戳均可讀取;沒有有效時間時只做 ID 去重,缺少兩者則放行。
- 初次連線不設定時間界線;同秒但不同 ID 不會被此防重播層視為重複。
- 原有暱稱/內容及跨來源去重仍保留,因此內容相同的留言仍可能被既有規則過濾。
此策略偏向即時直播:斷線期間較早的補回留言也可能被丟棄。3 秒容差並不能
補償嚴重的本機時鐘誤差,執行主機需要正常同步時間。
遭忽略的訊息會以最多每 10 秒一次的日誌回報原因與累計數。
驗證:`node --test Test/tiktok_chat_guard.test.mjs`。