Kod örnekleri

Dart (Flutter) MQTT örneği

mqtt_client paketiyle Dart ve Flutter uygulamalarını bir MQTT broker’a bağlayın. Ücretsiz herkese açık broker’da başlayın, ardından aynı kodu ConnectMQ üzerindeki güvenli, özel bir broker’a yönlendirin.

Kütüphane
mqtt_client
Kurulum
dart pub add mqtt_client # flutter pub add mqtt_client
Kaynak kod GitHub’damqtt-code-samples/dart-flutterÇalıştırılmaya hazır örneklerin tamamını klonlayın. Yıldız ve pull request’lere açığız. GitHub'da görüntüle

1. Ücretsiz herkese açık broker’da deneyin

Hesap gerekmez: 1883 portundan broker.connectmq.com adresine bağlanın ve saniyeler içinde yayın yapmaya başlayın.

main.dart
import 'dart:convert';
import 'package:mqtt_client/mqtt_client.dart';
import 'package:mqtt_client/mqtt_server_client.dart';

Future<void> main() async {
  const topic = 'your-project/sensors/temperature'; // Benzersiz bir topic öneki kullan: herkese açık broker’ı herkes okuyabilir

  // Ücretsiz herkese açık broker’a bağlan (hesap gerekmez) (Her istemcinin benzersiz bir client ID’si olmalı)
  final client = MqttServerClient.withPort('broker.connectmq.com', 'flutter-example', 1883);
  client.keepAlivePeriod = 30;
  await client.connect();

  // Sıcaklık topic’ine abone ol
  client.subscribe(topic, MqttQos.atLeastOnce);
  // Abone olunan topic’teki her mesaj için çalışır
  client.updates!.listen((messages) {
    final message = messages.first.payload as MqttPublishMessage;
    final text = MqttPublishPayload.bytesToStringAsString(message.payload.message);
    print('${messages.first.topic}: $text');
  });

  // JSON formatında bir ölçüm yayınla
  final builder = MqttClientPayloadBuilder()..addString(jsonEncode({'temperature': 21.5}));
  client.publishMessage(topic, MqttQos.atLeastOnce, builder.payload!);
}

Ücretsiz herkese açık MQTT broker

Herkese açık broker paylaşımlıdır: topic’lerinize herkes abone olabilir. Üzerinden asla parola, kişisel veri veya gizli bilgi göndermeyin.

Ücretsiz herkese açık MQTT broker hakkında

2. ConnectMQ ile canlıya geçin

Gerçek cihazlar için herkese açık broker yerine ConnectMQ üzerinde özel, sunucusuz bir MQTT broker kullanın: TLS şifreleme, her cihaz için kullanıcı adı ve parola ile topic bazlı erişim denetimi, tamamen yönetilen. Free planla başlayın — kart gerekmez.

YOUR_BROKER_HOST, YOUR_USERNAME ve YOUR_PASSWORD değerlerini ConnectMQ panelinizdeki bilgilerle değiştirin.

main.dart
import 'dart:convert';
import 'package:mqtt_client/mqtt_client.dart';
import 'package:mqtt_client/mqtt_server_client.dart';

Future<void> main() async {
  const topic = 'your-project/sensors/temperature';

  // 8883 portundan özel ConnectMQ broker’ınıza bağlan (Her istemcinin benzersiz bir client ID’si olmalı)
  final client = MqttServerClient.withPort('YOUR_BROKER_HOST', 'flutter-example', 8883);
  client.keepAlivePeriod = 30;
  // TLS: broker sertifikasını sistemin CA deposu doğrular
  client.secure = true;
  // ConnectMQ panelinizdeki kullanıcı adı ve parola
  await client.connect('YOUR_USERNAME', 'YOUR_PASSWORD');

  // Sıcaklık topic’ine abone ol
  client.subscribe(topic, MqttQos.atLeastOnce);
  // Abone olunan topic’teki her mesaj için çalışır
  client.updates!.listen((messages) {
    final message = messages.first.payload as MqttPublishMessage;
    final text = MqttPublishPayload.bytesToStringAsString(message.payload.message);
    print('${messages.first.topic}: $text');
  });

  // JSON formatında bir ölçüm yayınla
  final builder = MqttClientPayloadBuilder()..addString(jsonEncode({'temperature': 21.5}));
  client.publishMessage(topic, MqttQos.atLeastOnce, builder.payload!);
}

Dart (Flutter) MQTT SSS

Dart (Flutter) bir MQTT broker’a nasıl bağlanır?

mqtt_client kurun, broker sunucusuna 1883 portundan (TLS ile 8883) bağlanın, ardından bir topic’e abone olup aynı topic’e mesaj yayınlayın. Bu sayfadaki örnekler ücretsiz herkese açık broker.connectmq.com’a ve özel bir ConnectMQ broker’ına bağlanır.

Dart (Flutter) testleri için ücretsiz bir MQTT broker var mı?

Evet. broker.connectmq.com, hesap gerektirmeyen ücretsiz ve herkese açık bir MQTT broker’dır. Topic’lerini herkes okuyabildiği için yalnızca testlerde kullanın ve benzersiz bir topic öneki seçin.

Dart (Flutter) MQTT bağlantısı nasıl güvenli hale getirilir?

ConnectMQ panelinizden aldığınız kullanıcı adı ve parolayla 8883 portu üzerinden TLS ile bağlanın; herkese açık broker yerine her cihaza kendi kimlik bilgilerini ve topic izinlerini verin.

Ücretsiz herkese açık MQTT broker

Her örneği broker.connectmq.com üzerinde test edin — kayıt gerekmez; MQTT 3.1.1 ve 5, TCP, TLS ve WebSocket desteklenir.

Ücretsiz herkese açık MQTT broker hakkında

Canlı ortam için güvenli, sunucusuz MQTT

Gerçek cihazlara geçme zamanı geldiğinde aynı kodu TLS ve cihaz başına kimlik bilgileriyle özel, tamamen yönetilen bir ConnectMQ broker’ında çalıştırın.

Ücretsiz başlayın

Özel MQTT broker’ınız birkaç tık uzağınızda

Hesabınızı oluşturun, broker kimlik bilgilerinizi alın ve ilk cihazınızı bağlayın — kurulacak, yamalanacak ya da ölçeklendirilecek sunucu yok.

WebSocket Üzerinden MQTT: MQTT.js ile Tarayıcıyı MQTT Broker'a Bağlayın

Tarayıcılar ham TCP soketleri açamaz; bu yüzden web uygulamaları MQTT'yi WebSocket üzerinden konuşur. broker.connectmq.com'a bağlanan çalışan bir tarayıcı client'ı ve bir Node.js client'ı geliştirin, en sık görülen bağlantı hatalarını nasıl düzelteceğinizi öğrenin.

7 dk okuma