shamblett / mqtt_client

A server and browser based MQTT client for dart
Other
548 stars 176 forks source link

Auto PINGREQ? #179

Closed 02monkey closed 4 years ago

02monkey commented 4 years ago

surroundings: mqtt_client 6.2.1,...example/mqtt_server_client_autoreconnect.dart. Will not be sent automatically PINGREQ???,keepAliveFor(60),1.5 times Rear mqtt.client.disconnect. My routine(emqx) Subscribe to topics only,Start sending data after receiving the subscription topic,client 60s not send ping(PINGREQ),pong('EXAMPLE::Ping ') I need to send a heartbeat packet myself?

`I/flutter ( 2822): 2020-04-21 17:18:56.481450 -- MqttServerConnection::_onData - message processed I/flutter ( 2822): EXAMPLE::Published notification:: topic is esp8266, with Qos MqttQos.exactlyOnce I/flutter ( 2822): 2020-04-21 17:18:56.481932 -- MqttConnection::_onData I/flutter ( 2822): 2020-04-21 17:18:56.482020 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.publishRelease I/flutter ( 2822): Header: MessageType = MqttMessageType.publishRelease, Duplicate = false, Retain = false, Qos = MqttQos.atLeastOnce, Size = 2 I/flutter ( 2822): PublishRelease Variable Header: MessageIdentifier={1} I/flutter ( 2822): 2020-04-21 17:18:56.482090 -- MqttServerConnection::_onData - message processed I/flutter ( 2822): 2020-04-21 17:18:56.482232 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.publishComplete I/flutter ( 2822): Header: MessageType = MqttMessageType.publishComplete, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2822): PublishComplete Variable Header: MessageIdentifier={1} I/flutter ( 2822): 收到mqtt数据:EXAMPLE::Change notification:: topic is , payload is <-- Hello from mqtt_client --> I/flutter ( 2822): 2020-04-21 17:19:56.469261 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.pingRequest I/flutter ( 2822): Header: MessageType = MqttMessageType.pingRequest, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2822): 2020-04-21 17:19:56.472778 -- MqttConnection::_onData I/flutter ( 2822): 2020-04-21 17:19:56.472966 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.pingResponse I/flutter ( 2822): Header: MessageType = MqttMessageType.pingResponse, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2822): 2020-04-21 17:19:56.473092 -- MqttServerConnection::_onData - message processed I/flutter ( 2822): mqtt心跳包:EXAMPLE::Ping response client callback invoked - you may want to disconnect your broker here I/flutter ( 2822): 2020-04-21 17:20:56.473847 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.pingRequest I/flutter ( 2822): Header: MessageType = MqttMessageType.pingRequest, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2822): 2020-04-21 17:20:56.477152 -- MqttConnection::_onData I/flutter ( 2822): 2020-04-21 17:20:56.477345 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.pingResponse I/flutter ( 2822): Header: MessageType = MqttMessageType.pingResponse, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2822): 2020-04-21 17:20:56.477594 -- MqttServerConnection::_onData - message processed I/flutter ( 2822): mqtt心跳包:EXAMPLE::Ping response client callback invoked - you may want to disconnect your broker here I/flutter ( 2822): EXAMPLE::Unsubscribing I/flutter ( 2822): 2020-04-21 17:20:56.479666 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.unsubscribe I/flutter ( 2822): Header: MessageType = MqttMessageType.unsubscribe, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2822): Unsubscribe VariableHeader Variable Header: MessageIdentifier={8} I/flutter ( 2822): Payload: Unsubscription [{1}] I/flutter ( 2822): {{ Topic={esp8266_client}} I/flutter ( 2822): I/flutter ( 2822): 2020-04-21 17:20:56.482067 -- MqttConnection::_onData I/flutter ( 2822): 2020-04-21 17:20:56.482541 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.unsubscribeAck I/flutter ( 2822): Header: MessageType = MqttMessageType.unsubscribeAck, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 2 I/flutter ( 2822): UnsubscribeAck Variable Header: MessageIdentifier={8} I/flutter ( 2822): 2020-04-21 17:20:56.482667 -- MqttServerConnection::_onData - message processed I/flutter ( 2822): EXAMPLE::Disconnecting I/flutter ( 2822): 2020-04-21 17:20:58.489297 -- SynchronousMqttServerConnectionHandler::disconnect I/flutter ( 2822): 2020-04-21 17:20:58.489457 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.disconnect I/flutter ( 2822): Header: MessageType = MqttMessageType.disconnect, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2822): 2020-04-21 17:20:58.494848 -- MqttConnectionBase::_onDone - calling disconnected callback E/flutter ( 2822): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The getter 'autoReconnectInProgress' was called on null. E/flutter ( 2822): Receiver: null E/flutter ( 2822): Tried calling: autoReconnectInProgress E/flutter ( 2822): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5) E/flutter ( 2822): #1 MqttClient.internalDisconnect (package:mqtt_client/src/mqtt_client.dart:327:30) E/flutter ( 2822): #2 MqttConnectionBase.onDone (package:mqtt_client/src/connectionhandling/mqtt_client_mqtt_connection_base.dart:65:21) E/flutter ( 2822): #3 _rootRun (dart:async/zone.dart:1180:38) E/flutter ( 2822): #4 _CustomZone.run (dart:async/zone.dart:1077:19) E/flutter ( 2822): #5 _CustomZone.runGuarded (dart:async/zone.dart:979:7) E/flutter ( 2822): #6 _BufferingStreamSubscription._sendDone.sendDone (dart:async/stream_impl.dart:392:13) E/flutter ( 2822): #7 _BufferingStreamSubscription._sendDone (dart:async/stream_impl.dart:402:15) E/flutter ( 2822): #8 _BufferingStreamSubscription._close (dart:async/stream_impl.dart:286:7) E/flutter ( 2822): #9 _SyncStreamControllerDispatch._sendDone (dart:async/stream_controller.dart:787:19) E/flutter ( 2822): #10 _StreamController._closeUnchecked (dart:async/stream_controller.dart:644:7) E/flutter ( 2822): #11 _StreamController.close (dart:async/stream_controller.dart:637:5) E/flutter ( 2822): #12 _Socket._onData (dart:io-patch/socket_patch.dart:1989:21) E/flutter ( 2822): #13 _rootRunUnary (dart:async/zone.dart:1196:13) E/flutter ( 2822): #14 _CustomZone.runUnary (dart:async/zone.dart:1085:19) E/flutter ( 2822): #15 _CustomZone.runUnaryGuarded (dart:async/zone.dart:987:7) E/flutter ( 2822): #16 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11) E/flutter ( 2822): #17 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:266:7) E/flutter ( 2822): #18 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:779:19) E/flutter ( 2822): #19 _StreamController._add (dart:async/stream_controller.dart:655:7) E/flutter ( 2822): #20 _StreamController.add (dart:async/stream_controller.dart:597:5) E/flutter ( 2822): #21 new _RawSocket. (dart:io-patch/socket_patch.dart:1534:35) E/flutter ( 2822): #22 _NativeSocket.issueReadEvent.issue (dart:io-patch/socket_patch.dart:1012:18) E/flutter ( 2822): #23 _microtaskLoop (dart:async/schedule_microtask.dart:43:21) E/flutter ( 2822): #24 _startMicrotaskLoop

(dart:async/schedule_microtask.dart:52:5)`

shamblett commented 4 years ago

You seem to be using the autoreconnect example, at this poimnt in the log

I/flutter ( 2822): mqtt心跳包:EXAMPLE::Ping response client callback invoked - you may want to disconnect your broker here

Did you do this? It looks as though you didn't, other than that I'm not sure what you are saying, ping requests are clearly generated until the client finally unsubscribes, disconnects and the example ends.

02monkey commented 4 years ago

You seem to be using the autoreconnect example, at this poimnt in the log

I/flutter ( 2822): mqtt心跳包:EXAMPLE::Ping response client callback invoked - you may want to disconnect your broker here

Did you do this? It looks as though you didn't, other than that I'm not sure what you are saying, ping requests are clearly generated until the client finally unsubscribes, disconnects and the example ends.

Here is just that I added a comment to facilitate viewing the log, without changing the original code in your example, my (emqx MQTT brokerl) did not receive the heartbeat package!

02monkey commented 4 years ago

My server did not receive the mentality package. I/flutter ( 2222): EXAMPLE::Mosquitto client connecting.... I/flutter ( 2222): 2020-04-26 00:03:55.843663 -- Authenticating with username '{user}' and password '{pass}' I/flutter ( 2222): 2020-04-26 00:03:55.852220 -- SynchronousMqttServerConnectionHandler::internalConnect entered I/flutter ( 2222): 2020-04-26 00:03:55.852272 -- SynchronousMqttServerConnectionHandler::internalConnect - initiating connection try 0 I/flutter ( 2222): 2020-04-26 00:03:55.852422 -- SynchronousMqttServerConnectionHandler::internalConnect - insecure TCP selected I/flutter ( 2222): 2020-04-26 00:03:55.879061 -- MqttServerConnection::_startListening I/flutter ( 2222): 2020-04-26 00:03:55.883125 -- SynchronousMqttServerConnectionHandler::internalConnect - connection complete I/flutter ( 2222): 2020-04-26 00:03:55.883184 -- SynchronousMqttServerConnectionHandler::internalConnect sending connect message I/flutter ( 2222): 2020-04-26 00:03:55.884763 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.connect I/flutter ( 2222): Header: MessageType = MqttMessageType.connect, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2222): Connect Variable Header: ProtocolName=MQIsdp, ProtocolVersion=3, ConnectFlags=Connect Flags: Reserved1=false, CleanStart=true, WillFlag=true, WillQos=MqttQos.atLeastOnce, WillRetain=false, PasswordFlag=true, UserNameFlag=true, KeepAlive=60 I/flutter ( 2222): MqttConnectPayload - client identifier is : Mqtt_MyClientUniqueId I/flutter ( 2222): 2020-04-26 00:03:55.894623 -- SynchronousMqttServerConnectionHandler::internalConnect - pre sleep, state = Connection status is connecting with return code noneSpecified I/flutter ( 2222): 2020-04-26 00:03:55.898389 -- MqttConnection::_onData I/flutter ( 2222): 2020-04-26 00:03:55.902153 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.connectAck I/flutter ( 2222): Header: MessageType = MqttMessageType.connectAck, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 2 I/flutter ( 2222): Connect Variable Header: TopicNameCompressionResponse={0}, ReturnCode={MqttConnectReturnCode.connectionAccepted} I/flutter ( 2222): 2020-04-26 00:03:55.903497 -- MqttServerConnection::_onData - message processed I/flutter ( 2222): 2020-04-26 00:03:55.905540 -- SynchronousMqttServerConnectionHandler::_connectAckProcessor I/flutter ( 2222): 2020-04-26 00:03:55.905948 -- SynchronousMqttServerConnectionHandler::_connectAckProcessor - state = connected I/flutter ( 2222): EXAMPLE::OnConnected client callback - Client connection was sucessful I/flutter ( 2222): 2020-04-26 00:03:55.906269 -- SynchronousMqttServerConnectionHandler:: cancelling connect timer I/flutter ( 2222): 2020-04-26 00:03:55.906508 -- SynchronousMqttServerConnectionHandler::internalConnect - post sleep, state = Connection status is connected with return code connectionAccepted I/flutter ( 2222): 2020-04-26 00:03:55.906560 -- SynchronousMqttServerConnectionHandler::internalConnect exited with state Connection status is connected with return code connectionAccepted I/flutter ( 2222): EXAMPLE::Mosquitto client connected I/flutter ( 2222): EXAMPLE::Subscribing to the test/lol topic I/flutter ( 2222): 2020-04-26 00:03:55.910537 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.subscribe I/flutter ( 2222): Header: MessageType = MqttMessageType.subscribe, Duplicate = false, Retain = false, Qos = MqttQos.atLeastOnce, Size = 0 I/flutter ( 2222): Subscribe Variable Header: MessageIdentifier={1} I/flutter ( 2222): Payload: Subscription [{1}] I/flutter ( 2222): {{ Topic={test/lol}, Qos={MqttQos.atMostOnce} }} I/flutter ( 2222): I/flutter ( 2222): EXAMPLE::Subscribing to the Dart/Mqtt_client/testtopic topic I/flutter ( 2222): 2020-04-26 00:03:55.912689 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.subscribe I/flutter ( 2222): Header: MessageType = MqttMessageType.subscribe, Duplicate = false, Retain = false, Qos = MqttQos.atLeastOnce, Size = 0 I/flutter ( 2222): Subscribe Variable Header: MessageIdentifier={2} I/flutter ( 2222): Payload: Subscription [{1}] I/flutter ( 2222): {{ Topic={Dart/Mqtt_client/testtopic}, Qos={MqttQos.exactlyOnce} }} I/flutter ( 2222): I/flutter ( 2222): EXAMPLE::Publishing our topic I/flutter ( 2222): 2020-04-26 00:03:55.915400 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.publish I/flutter ( 2222): Header: MessageType = MqttMessageType.publish, Duplicate = false, Retain = false, Qos = MqttQos.exactlyOnce, Size = 0 I/flutter ( 2222): Publish Variable Header: TopicName={Dart/Mqtt_client/testtopic}, MessageIdentifier={3}, VH Length={0} I/flutter ( 2222): Payload: {22 bytes={<72><101><108><108><111><32><102><114><111><109><32><109><113><116><116><95><99><108><105><101><110><116> I/flutter ( 2222): EXAMPLE::Sleeping.... I/flutter ( 2222): 2020-04-26 00:03:55.919290 -- MqttConnection::_onData I/flutter ( 2222): 2020-04-26 00:03:55.920967 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.subscribeAck I/flutter ( 2222): Header: MessageType = MqttMessageType.subscribeAck, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 3 I/flutter ( 2222): SubscribeAck Variable Header: MessageIdentifier={1} I/flutter ( 2222): Payload: Qos grants [{1}] I/flutter ( 2222): {{ Grant={MqttQos.atMostOnce} }} I/flutter ( 2222): I/flutter ( 2222): 2020-04-26 00:03:55.921076 -- MqttServerConnection::_onData - message processed I/flutter ( 2222): 2020-04-26 00:03:55.921150 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.subscribeAck I/flutter ( 2222): Header: MessageType = MqttMessageType.subscribeAck, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 3 I/flutter ( 2222): SubscribeAck Variable Header: MessageIdentifier={2} I/flutter ( 2222): Payload: Qos grants [{1}] I/flutter ( 2222): {{ Grant={MqttQos.exactlyOnce} }} I/flutter ( 2222): I/flutter ( 2222): 2020-04-26 00:03:55.921230 -- MqttServerConnection::_onData - message processed I/flutter ( 2222): 2020-04-26 00:03:55.921827 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.publishReceived I/flutter ( 2222): Header: MessageType = MqttMessageType.publishReceived, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 2 I/flutter ( 2222): PublishReceived Variable Header: MessageIdentifier={3} I/flutter ( 2222): 2020-04-26 00:03:55.921869 -- MqttServerConnection::_onData - message processed I/flutter ( 2222): 2020-04-26 00:03:55.923106 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.publish I/flutter ( 2222): Header: MessageType = MqttMessageType.publish, Duplicate = false, Retain = false, Qos = MqttQos.exactlyOnce, Size = 52 I/flutter ( 2222): Publish Variable Header: TopicName={Dart/Mqtt_client/testtopic}, MessageIdentifier={1}, VH Length={30} I/flutter ( 2222): Payload: {22 bytes={<72><101><108><108><111><32><102><114><111><109><32><109><113><116><116><95><99><108><105><101><110><116> I/flutter ( 2222): 2020-04-26 00:03:55.923154 -- MqttServerConnection::_onData - message processed I/flutter ( 2222): EXAMPLE::Subscription confirmed for topic test/lol I/flutter ( 2222): EXAMPLE::Subscription confirmed for topic Dart/Mqtt_client/testtopic I/flutter ( 2222): 2020-04-26 00:03:55.924529 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.publishRelease I/flutter ( 2222): Header: MessageType = MqttMessageType.publishRelease, Duplicate = false, Retain = false, Qos = MqttQos.atLeastOnce, Size = 0 I/flutter ( 2222): PublishRelease Variable Header: MessageIdentifier={3} I/flutter ( 2222): 2020-04-26 00:03:55.925714 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.publishReceived I/flutter ( 2222): Header: MessageType = MqttMessageType.publishReceived, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2222): PublishReceived Variable Header: MessageIdentifier={1} I/flutter ( 2222): 2020-04-26 00:03:55.926077 -- MqttConnection::_onData I/flutter ( 2222): 2020-04-26 00:03:55.926719 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.publishComplete I/flutter ( 2222): Header: MessageType = MqttMessageType.publishComplete, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 2 I/flutter ( 2222): PublishComplete Variable Header: MessageIdentifier={3} I/flutter ( 2222): 2020-04-26 00:03:55.926787 -- MqttServerConnection::_onData - message processed I/flutter ( 2222): EXAMPLE::Published notification:: topic is Dart/Mqtt_client/testtopic, with Qos MqttQos.exactlyOnce I/flutter ( 2222): 2020-04-26 00:03:55.927506 -- MqttConnection::_onData I/flutter ( 2222): 2020-04-26 00:03:55.927792 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.publishRelease I/flutter ( 2222): Header: MessageType = MqttMessageType.publishRelease, Duplicate = false, Retain = false, Qos = MqttQos.atLeastOnce, Size = 2 I/flutter ( 2222): PublishRelease Variable Header: MessageIdentifier={1} I/flutter ( 2222): 2020-04-26 00:03:55.927839 -- MqttServerConnection::_onData - message processed I/flutter ( 2222): 2020-04-26 00:03:55.928387 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.publishComplete I/flutter ( 2222): Header: MessageType = MqttMessageType.publishComplete, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2222): PublishComplete Variable Header: MessageIdentifier={1} I/flutter ( 2222): EXAMPLE::Change notification:: topic is <Dart/Mqtt_client/testtopic>, payload is <-- Hello from mqtt_client --> I/flutter ( 2222): 2020-04-26 00:04:55.854827 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.pingRequest I/flutter ( 2222): Header: MessageType = MqttMessageType.pingRequest, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2222): 2020-04-26 00:04:55.856219 -- MqttConnection::_onData I/flutter ( 2222): 2020-04-26 00:04:55.856744 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.pingResponse I/flutter ( 2222): Header: MessageType = MqttMessageType.pingResponse, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2222): 2020-04-26 00:04:55.856916 -- MqttServerConnection::_onData - message processed I/flutter ( 2222): EXAMPLE::Ping response client callback invoked - you may want to disconnect your broker here I/flutter ( 2222): 2020-04-26 00:05:55.858302 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.pingRequest I/flutter ( 2222): Header: MessageType = MqttMessageType.pingRequest, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2222): 2020-04-26 00:05:55.860039 -- MqttConnection::_onData I/flutter ( 2222): 2020-04-26 00:05:55.860243 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.pingResponse I/flutter ( 2222): Header: MessageType = MqttMessageType.pingResponse, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2222): 2020-04-26 00:05:55.860342 -- MqttServerConnection::_onData - message processed I/flutter ( 2222): EXAMPLE::Ping response client callback invoked - you may want to disconnect your broker here I/flutter ( 2222): EXAMPLE::Unsubscribing I/flutter ( 2222): 2020-04-26 00:05:55.922390 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.unsubscribe I/flutter ( 2222): Header: MessageType = MqttMessageType.unsubscribe, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2222): Unsubscribe VariableHeader Variable Header: MessageIdentifier={4} I/flutter ( 2222): Payload: Unsubscription [{1}] I/flutter ( 2222): {{ Topic={test/lol}} I/flutter ( 2222): I/flutter ( 2222): 2020-04-26 00:05:55.925782 -- MqttConnection::_onData I/flutter ( 2222): 2020-04-26 00:05:55.927432 -- MqttServerConnection::_onData - message received MQTTMessage of type MqttMessageType.unsubscribeAck I/flutter ( 2222): Header: MessageType = MqttMessageType.unsubscribeAck, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 2 I/flutter ( 2222): UnsubscribeAck Variable Header: MessageIdentifier={4} I/flutter ( 2222): 2020-04-26 00:05:55.927579 -- MqttServerConnection::_onData - message processed I/flutter ( 2222): EXAMPLE::Disconnecting I/flutter ( 2222): 2020-04-26 00:05:57.929103 -- SynchronousMqttServerConnectionHandler::disconnect I/flutter ( 2222): 2020-04-26 00:05:57.929668 -- MqttConnectionHandlerBase::sendMessage - MQTTMessage of type MqttMessageType.disconnect I/flutter ( 2222): Header: MessageType = MqttMessageType.disconnect, Duplicate = false, Retain = false, Qos = MqttQos.atMostOnce, Size = 0 I/flutter ( 2222): 2020-04-26 00:05:57.945176 -- MqttConnectionBase::_onDone - calling disconnected callback E/flutter ( 2222): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The getter 'autoReconnectInProgress' was called on null. E/flutter ( 2222): Receiver: null E/flutter ( 2222): Tried calling: autoReconnectInProgress E/flutter ( 2222): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5) E/flutter ( 2222): #1 MqttClient.internalDisconnect (package:mqtt_client/src/mqtt_client.dart:327:30) E/flutter ( 2222): #2 MqttConnectionBase.onDone (package:mqtt_client/src/connectionhandling/mqtt_client_mqtt_connection_base.dart:65:21) E/flutter ( 2222): #3 _rootRun (dart:async/zone.dart:1180:38) E/flutter ( 2222): #4 _CustomZone.run (dart:async/zone.dart:1077:19) E/flutter ( 2222): #5 _CustomZone.runGuarded (dart:async/zone.dart:979:7) E/flutter ( 2222): #6 _BufferingStreamSubscription._sendDone.sendDone (dart:async/stream_impl.dart:392:13) E/flutter ( 2222): #7 _BufferingStreamSubscription._sendDone (dart:async/stream_impl.dart:402:15) E/flutter ( 2222): #8 _BufferingStreamSubscription._close (dart:async/stream_impl.dart:286:7) E/flutter ( 2222): #9 _SyncStreamControllerDispatch._sendDone (dart:async/stream_controller.dart:787:19) E/flutter ( 2222): #10 _StreamController._closeUnchecked (dart:async/stream_controller.dart:644:7) E/flutter ( 2222): #11 _StreamController.close (dart:async/stream_controller.dart:637:5) E/flutter ( 2222): #12 _Socket._onData (dart:io-patch/socket_patch.dart:1989:21) E/flutter ( 2222): #13 _rootRunUnary (dart:async/zone.dart:1196:13) E/flutter ( 2222): #14 _CustomZone.runUnary (dart:async/zone.dart:1085:19) E/flutter ( 2222): #15 _CustomZone.runUnaryGuarded (dart:async/zone.dart:987:7) E/flutter ( 2222): #16 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:339:11) E/flutter ( 2222): #17 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:266:7) E/flutter ( 2222): #18 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:779:19) E/flutter ( 2222): #19 _StreamController._add (dart:async/stream_controller.dart:655:7) E/flutter ( 2222): #20 _StreamController.add (dart:async/stream_controller.dart:597:5) E/flutter ( 2222): #21 new _RawSocket.<anonymous closure> (dart:io-patch/socket_patch.dart:1534:35) E/flutter ( 2222): #22 _NativeSocket.issueReadEvent.issue (dart:io-patch/socket_patch.dart:1012:18) E/flutter ( 2222): #23 _microtaskLoop (dart:async/schedule_microtask.dart:43:21) E/flutter ( 2222): #24 _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5) E/flutter ( 2222):

02monkey commented 4 years ago

[ 1 2 3

](url)

02monkey commented 4 years ago

I used your example: https://github.com/shamblett/mqtt_client/blob/master/example/mqtt_server_client_autoreconnect.dart

mine EMQ X Broker : https://github.com/emqx/emqx

shamblett commented 4 years ago

Sorry I'm not understanding you, the log above clearly shows ping responses to automatically generated ping requests, I don't know what this means 'My server did not receive the mentality package.' nor this 'I need to send a heartbeat packet myself?' what do you mean by heartbeat?

02monkey commented 4 years ago

Sorry I'm not understanding you, the log above clearly shows ping responses to automatically generated ping requests, I don't know what this means 'My server did not receive the mentality package.' nor this 'I need to send a heartbeat packet myself?' what do you mean by heartbeat?

I am not good at English

mqtt Broker not (keepAlivePeriod(60)) => PINGREQ !