Не уверен, почему я получаю ноль в полезной нагрузке. Я хочу использовать полезную нагрузку, чтобы определить, зарегистрировано ли мое устройство или нет. Если я зарегистрируюсь, я подпишусь на topi c. Если нет, я сделаю что-нибудь еще. Но я получаю нулевое значение для полезной нагрузки.
Часть 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>