Compare commits
2 Commits
06d11c1edc
...
56e40efadb
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
56e40efadb | ||
|
|
52489cdc86 |
@@ -92,6 +92,8 @@ module.exports = {
|
|||||||
deviceName: accountData.name || accountData.sn_code,
|
deviceName: accountData.name || accountData.sn_code,
|
||||||
platform: accountData.platform_type,
|
platform: accountData.platform_type,
|
||||||
isOnline: onlineStatus.isOnline || false,
|
isOnline: onlineStatus.isOnline || false,
|
||||||
|
is_online: onlineStatus.isOnline || false, // 前端使用的字段名
|
||||||
|
is_logged_in: onlineStatus.isLoggedIn || false, // 从 deviceManager 内存中获取登录状态
|
||||||
isRunning: false, // 不再维护运行状态
|
isRunning: false, // 不再维护运行状态
|
||||||
lastHeartbeatTime: onlineStatus.lastHeartbeat ? new Date(onlineStatus.lastHeartbeat) : null,
|
lastHeartbeatTime: onlineStatus.lastHeartbeat ? new Date(onlineStatus.lastHeartbeat) : null,
|
||||||
accountName: accountData.name,
|
accountName: accountData.name,
|
||||||
|
|||||||
@@ -288,8 +288,13 @@ class MqttDispatcher {
|
|||||||
// return;
|
// 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) {
|
} catch (error) {
|
||||||
console.error('[MQTT心跳] 处理心跳消息失败:', error);
|
console.error('[MQTT心跳] 处理心跳消息失败:', error);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,14 +64,21 @@ class DeviceManager {
|
|||||||
if (!this.devices.has(sn_code)) {
|
if (!this.devices.has(sn_code)) {
|
||||||
this.devices.set(sn_code, {
|
this.devices.set(sn_code, {
|
||||||
isOnline: true,
|
isOnline: true,
|
||||||
|
isLoggedIn: heartbeatData.isLoggedIn || false,
|
||||||
lastHeartbeat: now,
|
lastHeartbeat: now,
|
||||||
dailyCounts: { date: utils.getTodayString(), searchCount: 0, applyCount: 0, chatCount: 0 }
|
dailyCounts: { date: utils.getTodayString(), searchCount: 0, applyCount: 0, chatCount: 0 }
|
||||||
});
|
});
|
||||||
|
console.log(`[设备管理器] 新设备 ${sn_code} 初始化 - isLoggedIn: ${heartbeatData.isLoggedIn}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
const device = this.devices.get(sn_code);
|
const device = this.devices.get(sn_code);
|
||||||
device.isOnline = true;
|
device.isOnline = true;
|
||||||
device.lastHeartbeat = now;
|
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()) {
|
for (const [sn_code, device] of this.devices.entries()) {
|
||||||
result[sn_code] = {
|
result[sn_code] = {
|
||||||
isOnline: device.isOnline,
|
isOnline: device.isOnline,
|
||||||
|
isLoggedIn: device.isLoggedIn || false,
|
||||||
lastHeartbeat: device.lastHeartbeat,
|
lastHeartbeat: device.lastHeartbeat,
|
||||||
dailyCounts: device.dailyCounts || {}
|
dailyCounts: device.dailyCounts || {}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user