Merge branch 'feature/my' of http://1.95.137.212:57001/APP/FlutterApp into feature/my

This commit is contained in:
mmc
2026-02-26 20:36:39 +08:00

View File

@@ -35,6 +35,13 @@ class TcpClient {
debugPrint('收到服务端心跳,自动回复...');
sendHeartbeat(); // 回复 AB AA FF AA AB
}
// 🔥 处理推送消息
if (isPushMsg(packet)) {
debugPrint('收到推送消息,开始处理...');
handlePushMessage(packet); // 自定义处理逻辑
}
_controller.add(packet);
}
},
@@ -108,5 +115,43 @@ class TcpClient {
}
/// 判断是否是推送消息
bool isPushMsg(RawPacket packet) {
return packet.command == 0x12;
}
/// 处理推送消息
/// 处理推送消息
void handlePushMessage(RawPacket packet) {
try {
// 打印详细信息
debugPrint('收到推送消息:命令码=${packet.command}, 时间=${DateTime.now()}');
// 解码 payload 为字符串
final jsonString = utf8.decode(packet.payload);
debugPrint('推送内容:$jsonString');
// 如果是 JSON 格式,进一步解析
final jsonData = jsonDecode(jsonString) as Map<String, dynamic>;
if (jsonData.containsKey('event')) {
final event = jsonData['event'];
final deviceId = jsonData['deviceId'] ?? '未知设备';
final status = jsonData['status'] ?? '未知状态';
debugPrint('事件类型:$event, 设备ID:$deviceId, 状态:$status');
// 根据事件类型处理逻辑
if (event == 'device_status_changed') {
// 示例:更新设备状态
debugPrint('设备状态变更:$deviceId -> $status');
}
}
} catch (e) {
// 异常处理
debugPrint('推送消息解析失败:${e.toString()}');
}
}
}