【发布时间】:2026-02-17 14:00:01
【问题描述】:
不知道为什么我在有效载荷中得到空值。我想使用有效负载来确定我的设备是否已注册。如果注册我会订阅主题。如果没有,我会做其他事情。但我的有效载荷为空。
第 1 部分:
client.subscribe(registerTopic, MqttQos.atMostOnce);
onSub().then((payload) {
//if(payload == '1')
print('Payload: $payload');
client.subscribe(subTopic, MqttQos.atMostOnce);
});
然后是第 2 部分:
Future<String> onSub() async {
client.updates.listen((List<MqttReceivedMessage<MqttMessage>> c) {
final MqttPublishMessage recMess = c[0].payload;
receivedMessage =
MqttPublishPayload.bytesToStringAsString(recMess.payload.message);
print(
'::Change notification:: topic -> <${c[0].topic}>, payload -> <$receivedMessage> ');
payload = receivedMessage;
});
return payload;
}
我的输出:
Performing hot restart...
Syncing files to device AOSP on IA Emulator...
Restarted application in 2,501ms.
I/flutter (12404): ::Data connection is available.
I/flutter (12404): ::Mosquitto client connecting....
I/flutter (12404): ::Mosquitto client connected
I/flutter (12404): Payload: null
I/flutter (12404): ::Subscription confirmed -> topic -> registerTopic/registered
I/flutter (12404): ::Subscription confirmed -> topic -> subTopic/control_instruction
I/flutter (12404): ::Change notification:: topic -> <reisterTopic/registered>, payload -> <1>
I/flutter (12404): ::Change notification:: topic -> <subTopic/control_instruction>, payload -> <00010000011000000000>
【问题讨论】:
标签: flutter dart async-await