fix:修复相关问题,新增留言查看
This commit is contained in:
@@ -55,12 +55,14 @@ wss.on('connection', (ws) => {
|
||||
ws.send(JSON.stringify({ type: 'situation', data: getSituation(), stats: getStats() }))
|
||||
})
|
||||
|
||||
// 仅用 situation.updated_at + situation_update 条数做“版本”,避免无变更时重复查库和推送
|
||||
// 版本含 situation、situation_update、key_location 基地态势,任一变化都会触发广播,保证爬虫 AI 更新基地后前端实时刷新
|
||||
function getBroadcastVersion() {
|
||||
try {
|
||||
const meta = db.prepare('SELECT updated_at FROM situation WHERE id = 1').get()
|
||||
const row = db.prepare('SELECT COUNT(*) as c FROM situation_update').get()
|
||||
return `${meta?.updated_at || ''}_${row?.c ?? 0}`
|
||||
const usAtt = db.prepare("SELECT COUNT(*) as c FROM key_location WHERE side='us' AND status='attacked'").get()
|
||||
const irAtt = db.prepare("SELECT COUNT(*) as c FROM key_location WHERE side='iran' AND status='attacked'").get()
|
||||
return `${meta?.updated_at || ''}_${row?.c ?? 0}_b${usAtt?.c ?? 0}_${irAtt?.c ?? 0}`
|
||||
} catch (_) {
|
||||
return ''
|
||||
}
|
||||
@@ -92,15 +94,17 @@ if (BROADCAST_INTERVAL_MS > 0) {
|
||||
setInterval(() => broadcastSituation(false), BROADCAST_INTERVAL_MS)
|
||||
}
|
||||
|
||||
// 供爬虫调用:先从磁盘重载 DB(纳入爬虫写入),再更新 situation.updated_at 并立即广播;前端据此显示「实时更新」时间
|
||||
// 供爬虫调用:先从磁盘重载 DB(纳入爬虫写入),再更新 situation.updated_at 并立即广播;前端据此实时更新基地态势等
|
||||
function notifyCrawlerUpdate() {
|
||||
try {
|
||||
const db = require('./db')
|
||||
db.reloadFromFile()
|
||||
db.prepare("INSERT OR REPLACE INTO situation (id, data, updated_at) VALUES (1, '{}', ?)").run(new Date().toISOString())
|
||||
broadcastSituation()
|
||||
broadcastSituation(true) // 强制推送,确保基地数/被袭数等随 AI 清洗实时更新
|
||||
const n = db.prepare('SELECT COUNT(*) as c FROM situation_update').get().c
|
||||
console.log('[crawler/notify] DB 已重载并广播,situation_update 条数:', n)
|
||||
const usB = db.prepare("SELECT COUNT(*) as c FROM key_location WHERE side='us'").get().c
|
||||
const irB = db.prepare("SELECT COUNT(*) as c FROM key_location WHERE side='iran'").get().c
|
||||
console.log('[crawler/notify] DB 已重载并广播,situation_update:', n, '基地 us/iran:', usB, irB)
|
||||
} catch (e) {
|
||||
console.error('[crawler/notify]', e?.message || e)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user