8class MqttSessionExample {
15 MqttSessionExample() {
17 _setupMqttSessionListener();
23 void _initializeSdk() {
56 print(
"MqttSession successfully initialized");
59 print(
"Error initializing SDK: $e");
66 void _setupMqttSessionListener() {
70 print(
"MQTT session connected successfully");
74 onError: (Error error) {
75 print(
"MQTT session error: ${error.message}");
80 print(
"Message published successfully");
89 Future<void> demonstrateMqttSessionMethods() async {
91 print(
"MqttSession not initialized");
114 _mqttSession!.connect(
"mqtt.example.com", 1883,
"username",
"password");
118 await Future.delayed(Duration(seconds: 2));
123 String customTopic =
"custom/device/status";
124 String customMessage =
'{"status": "online", "timestamp": ${DateTime.now().millisecondsSinceEpoch}}';
132 Future<void> demonstrateMqttSessionConfigurations() async {
134 print(
"MqttSession not initialized");
138 print(
"=== MQTT Session Configurations ===");
147 _mqttSession!.connect(
"mqtt.example.com", 1883,
"user",
"pass");
151 await Future.delayed(Duration(seconds: 1));
166 _mqttSession!.connect(
"mqtt-secure.example.com", 8883,
"user",
"pass");
170 await Future.delayed(Duration(seconds: 1));
179 _mqttSession!.connect(
"mqtt.example.com", 1883,
"user",
"pass");
186 Future<void> demonstrateListenerManagement() async {
188 print(
"MqttSession not initialized");
192 print(
"=== Listener Management ===");
195 MqttSessionListener listener1 = MqttSessionListener(
197 print(
"Listener 1: Connected");
199 onError: (Error error) {
200 print(
"Listener 1: Error - ${error.message}");
203 print(
"Listener 1: Message published");
207 MqttSessionListener listener2 = MqttSessionListener(
209 print(
"Listener 2: Connected");
211 onError: (Error error) {
212 print(
"Listener 2: Error - ${error.message}");
215 print(
"Listener 2: Message published");
234 _mqttSession!.connect(
"mqtt.example.com", 1883,
"user",
"pass");
238 await Future.delayed(Duration(seconds: 2));
242 _mqttSession!.publish(
"custom/events",
'{"event": "user_action"}');
243 _mqttSession!.publish(
"custom/logs",
"Application started");
247 await Future.delayed(Duration(seconds: 1));
282 Future<void> runExample() async {
283 print(
"=== MqttSession Example ===");
285 await demonstrateMqttSessionMethods();
286 await demonstrateMqttSessionConfigurations();
287 await demonstrateListenerManagement();
290 await Future.delayed(Duration(seconds: 3));
293 print(
"=== Example completed ===");