Compare commits

..

2 Commits

Author SHA1 Message Date
张成
56e40efadb 1 2025-12-18 18:10:36 +08:00
张成
52489cdc86 1 2025-12-18 18:10:24 +08:00
3 changed files with 19 additions and 4 deletions

View File

@@ -92,6 +92,8 @@ module.exports = {
deviceName: accountData.name || accountData.sn_code,
platform: accountData.platform_type,
isOnline: onlineStatus.isOnline || false,
is_online: onlineStatus.isOnline || false, // 前端使用的字段名
is_logged_in: onlineStatus.isLoggedIn || false, // 从 deviceManager 内存中获取登录状态
isRunning: false, // 不再维护运行状态
lastHeartbeatTime: onlineStatus.lastHeartbeat ? new Date(onlineStatus.lastHeartbeat) : null,
accountName: accountData.name,

View File

@@ -288,8 +288,13 @@ class MqttDispatcher {
// return;
// }
// 记录心跳到设备管理器
await deviceManager.recordHeartbeat(sn_code, heartbeatData);
// 记录心跳到设备管理器(包含登录状态)
const heartbeatPayload = {
isLoggedIn: updateData.isLoggedIn || false,
...heartbeatData
};
console.log(`[MQTT心跳] 传递给 deviceManager 的数据:`, { sn_code, isLoggedIn: heartbeatPayload.isLoggedIn });
await deviceManager.recordHeartbeat(sn_code, heartbeatPayload);
} catch (error) {
console.error('[MQTT心跳] 处理心跳消息失败:', error);
}

View File

@@ -64,14 +64,21 @@ class DeviceManager {
if (!this.devices.has(sn_code)) {
this.devices.set(sn_code, {
isOnline: true,
isLoggedIn: heartbeatData.isLoggedIn || false,
lastHeartbeat: now,
dailyCounts: { date: utils.getTodayString(), searchCount: 0, applyCount: 0, chatCount: 0 }
});
console.log(`[设备管理器] 新设备 ${sn_code} 初始化 - isLoggedIn: ${heartbeatData.isLoggedIn}`);
}
const device = this.devices.get(sn_code);
device.isOnline = true;
device.lastHeartbeat = now;
// 更新登录状态
if (heartbeatData.isLoggedIn !== undefined) {
device.isLoggedIn = heartbeatData.isLoggedIn;
console.log(`[设备管理器] 设备 ${sn_code} 登录状态更新 - isLoggedIn: ${device.isLoggedIn}`);
}
}
/**
@@ -181,6 +188,7 @@ class DeviceManager {
for (const [sn_code, device] of this.devices.entries()) {
result[sn_code] = {
isOnline: device.isOnline,
isLoggedIn: device.isLoggedIn || false,
lastHeartbeat: device.lastHeartbeat,
dailyCounts: device.dailyCounts || {}
};