Merge branch 'feature/my' of http://1.95.137.212:57001/APP/FlutterApp into feature/my
This commit is contained in:
@@ -35,6 +35,13 @@ class TcpClient {
|
|||||||
debugPrint('收到服务端心跳,自动回复...');
|
debugPrint('收到服务端心跳,自动回复...');
|
||||||
sendHeartbeat(); // 回复 AB AA FF AA AB
|
sendHeartbeat(); // 回复 AB AA FF AA AB
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 🔥 处理推送消息
|
||||||
|
if (isPushMsg(packet)) {
|
||||||
|
debugPrint('收到推送消息,开始处理...');
|
||||||
|
handlePushMessage(packet); // 自定义处理逻辑
|
||||||
|
}
|
||||||
|
|
||||||
_controller.add(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()}');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user