Tutoriels IoT

Broker MQTT public gratuit pour vos tests : connectez-vous à broker.connectmq.com en quelques minutes

broker.connectmq.com est un serveur MQTT public gratuit pour tester et apprendre. Voici les ports, les règles d'accès anonyme, les limites et des exemples à copier-coller pour la ligne de commande, Python, Node.js et le navigateur.

Ordinateur portable et capteurs IoT échangeant des messages via broker.connectmq.com, un broker MQTT public gratuit pour les tests
Essayez-le sur votre propre broker MQTTObtenez un broker MQTT privé et managé avec l’offre Free et partez d’exemples de code prêts à l’emploi.
Essayer gratuitement Exemples de code Aucune carte bancaire requise

Un broker MQTT public gratuit est le moyen le plus rapide d'essayer MQTT : pas de compte, pas d'installation, juste un nom d'hôte et un port. Dans ce tutoriel, vous allez vous connecter à broker.connectmq.com, le serveur MQTT public gratuit de ConnectMQ, découvrir les règles et les limites de sa zone publique anonyme, et exécuter des exemples fonctionnels avec la CLI Mosquitto, Python, Node.js et le navigateur. À la fin, vous saurez exactement quand il est temps de passer à un broker privé.

Si vous découvrez le protocole, commencez par Qu'est-ce qu'un broker MQTT ? puis revenez ici pour la partie pratique.

Qu'est-ce qu'un broker MQTT public gratuit ?

Un broker MQTT public est un broker auquel n'importe qui sur Internet peut se connecter sans identifiants. Il sert à apprendre, à faire des démos, à prototyper rapidement et à déboguer du code client. Vous disposez d'un vrai broker qui parle MQTT 3.1.1 et MQTT 5.0, mais vous le partagez avec tous ceux qui testent au même moment.

Ce partage a une conséquence importante : tout ce que vous publiez dans la zone publique peut être lu par n'importe qui. Considérez-la comme un tableau blanc public. Elle est parfaite pour un « hello world », des simulations de capteurs et des expériences sur le protocole, et totalement inadaptée aux mots de passe, aux données personnelles ou au trafic de production.

Paramètres de connexion à broker.connectmq.com

Le serveur MQTT public gratuit de ConnectMQ écoute sur quatre endpoints. Choisissez celui qui correspond à votre client et à votre réseau.

Protocole Port URL Usage typique
MQTT (TCP) 1883 mqtt://broker.connectmq.com:1883 Outils en ligne de commande, microcontrôleurs, tests rapides
MQTT sur TLS 8883 mqtts://broker.connectmq.com:8883 Connexions chiffrées depuis des serveurs et des appareils
WebSocket 8083 ws://broker.connectmq.com:8083/mqtt Expériences web en local
WebSocket sécurisé 8084 wss://broker.connectmq.com:8084/mqtt Navigateurs et pages HTTPS

Les ports 8883 et 8084 utilisent un certificat Let's Encrypt : les bundles CA standard des systèmes d'exploitation le valident sans fichier supplémentaire. Si votre réseau bloque les ports inhabituels, le WSS sur le port 8084 est souvent la solution la plus simple, car il ressemble à du trafic HTTPS classique pour la plupart des proxys.

Règles d'accès anonyme

Vous n'avez besoin ni de nom d'utilisateur ni de mot de passe. Trois règles simples s'appliquent :

  1. Utilisez un client ID non vide. Connectez-vous sans nom d'utilisateur ni mot de passe, mais avec un client ID comme demo-7f3a91. Un client ID vide est refusé. Rendez-le unique : selon la spécification MQTT, une seconde connexion avec le même ID reprend la session et le premier client est déconnecté.
  2. Utilisez un préfixe de topic unique. Placez tout sous un préfixe que personne ne devinera, par exemple connectmq/demo/<your-random-id>/.... Vous évitez ainsi les collisions avec les autres testeurs et gardez une arborescence de topics propre.
  3. Partez du principe que tout est public. Les clients anonymes arrivent dans une zone publique partagée. Les clients publics ne voient que les topics des autres clients publics (ils sont isolés des tenants payants), mais à l'intérieur de la zone publique, n'importe quel client peut s'abonner à # et lire vos messages.

Une astuce pratique consiste à générer une fois un ID aléatoire et à le réutiliser à la fois comme base de client ID et comme préfixe de topic :

export ID=demo-$(openssl rand -hex 3)
echo $ID   # par ex. demo-7f3a91

Limites de la zone publique

La zone publique est généreuse pour les tests, mais volontairement bornée pour rester saine pour tout le monde.

Limite Valeur
Taille maximale d'un message 64 Ko
Débit de publication 10 messages par seconde et par client
Abonnements 10 par client
Profondeur des topics 8 niveaux maximum
Niveaux de QoS 0, 1 et 2
Retained messages Pris en charge
Abonnements avec wildcards (+, #) Pris en charge
Shared subscriptions ($share/{group}/{filter}) Prises en charge
Expiration de session Jusqu'à 30 minutes

Si vous dépassez un quota, les clients MQTT 5 reçoivent un reason code tel que 0x97 (Quota exceeded) au lieu d'un échec silencieux, ce qui facilite grandement le débogage. Vous hésitez sur la QoS à choisir ? Consultez Les niveaux de QoS MQTT expliqués.

Tester le broker MQTT public gratuit avec la CLI Mosquitto

Les outils en ligne de commande Eclipse Mosquitto sont le moyen le plus rapide de voir circuler des messages. Ouvrez deux terminaux.

Terminal 1 — abonnez-vous à votre préfixe :

mosquitto_sub -h broker.connectmq.com -p 1883 -i $ID-sub -t "connectmq/demo/$ID/#" -v

Terminal 2 — publiez un message :

mosquitto_pub -h broker.connectmq.com -p 1883 -i $ID-pub -t "connectmq/demo/$ID/temperature" -m '{"value": 22.5, "unit": "C"}'

Le terminal 1 affiche le topic suivi du payload. Pour utiliser le port chiffré, ajoutez le bundle CA de votre système (chemin valable pour la plupart des distributions Linux) :

mosquitto_pub -h broker.connectmq.com -p 8883 --capath /etc/ssl/certs -i $ID-tls -t "connectmq/demo/$ID/tls" -m "hello over TLS" -V mqttv5

Sous Windows ou macOS, pointez plutôt --cafile vers un bundle CA au format PEM (par exemple celui fourni avec Git for Windows). L'option -V mqttv5 fait passer le client en MQTT 5.0.

Démonstration des retained messages

Un retained message est stocké par le broker et remis immédiatement à chaque nouvel abonné du topic. C'est idéal pour les valeurs de « dernier état connu », comme le statut d'un appareil.

# Publier un statut retenu
mosquitto_pub -h broker.connectmq.com -p 1883 -i $ID-pub -t "connectmq/demo/$ID/status" -m "online" -r -q 1

# Un tout nouvel abonné le reçoit instantanément, bien qu'il ait été publié plus tôt
mosquitto_sub -h broker.connectmq.com -p 1883 -i $ID-late -t "connectmq/demo/$ID/status" -v -C 1 -W 5

# Effacer le retained message en publiant un payload retenu vide
mosquitto_pub -h broker.connectmq.com -p 1883 -i $ID-pub -t "connectmq/demo/$ID/status" -n -r

Effacez toujours vos retained messages de test une fois terminé : cela garde la zone publique propre.

Démonstration du Last Will and Testament

Un Last Will est un message que le broker publie à votre place si votre client se déconnecte de manière inattendue. Laissez tourner l'abonné du terminal 1, puis démarrez un « appareil » avec un will :

mosquitto_sub -h broker.connectmq.com -p 1883 -i $ID-device -t "connectmq/demo/$ID/cmd" -k 5 --will-topic "connectmq/demo/$ID/status" --will-payload "offline" --will-qos 1

Tuez maintenant ce terminal ou le processus (fermer la fenêtre suffit ; une déconnexion propre via Ctrl+C peut ne pas déclencher le will avec tous les clients). En quelques secondes, une fois le keep-alive expiré, le terminal 1 affiche :

connectmq/demo/demo-7f3a91/status offline

Nous avons vérifié ces commandes sur broker.connectmq.com lors de la rédaction de ce guide.

Exemple Python (paho-mqtt 2.x)

Installez le client avec pip install "paho-mqtt>=2.0". Le script ci-dessous se connecte en TLS, s'abonne à son préfixe et publie une mesure.

import json
import ssl
import uuid
import paho.mqtt.client as mqtt

DEVICE_ID = f"demo-{uuid.uuid4().hex[:6]}"
PREFIX = f"connectmq/demo/{DEVICE_ID}"

def on_connect(client, userdata, flags, reason_code, properties):
    print(f"Connected: {reason_code}")
    client.subscribe(f"{PREFIX}/#", qos=1)
    client.publish(f"{PREFIX}/temperature", json.dumps({"value": 21.8}), qos=1)

def on_message(client, userdata, msg):
    print(f"{msg.topic} -> {msg.payload.decode()}")

client = mqtt.Client(
    mqtt.CallbackAPIVersion.VERSION2,
    client_id=DEVICE_ID,
    protocol=mqtt.MQTTv5,
)
client.tls_set(cert_reqs=ssl.CERT_REQUIRED)  # utilise le magasin de CA du système
client.on_connect = on_connect
client.on_message = on_message

client.connect("broker.connectmq.com", 8883, keepalive=30)
client.loop_forever()

Notez qu'aucun appel à username_pw_set() n'est nécessaire dans la zone publique. Pour du TCP en clair, supprimez tls_set() et utilisez le port 1883.

Exemple Node.js (MQTT.js en mqtts et wss)

Installez MQTT.js v5 avec npm install mqtt. Le même code fonctionne en TLS ou en WebSocket sécurisé : seule l'URL change.

import mqtt from "mqtt";
import { randomBytes } from "node:crypto";

const clientId = `demo-${randomBytes(3).toString("hex")}`;
const prefix = `connectmq/demo/${clientId}`;

// Option A : MQTT sur TLS
const url = "mqtts://broker.connectmq.com:8883";
// Option B : MQTT sur WebSocket sécurisé
// const url = "wss://broker.connectmq.com:8084/mqtt";

const client = mqtt.connect(url, { clientId, protocolVersion: 5 });

client.on("connect", () => {
  console.log("Connected as", clientId);
  client.subscribe(`${prefix}/#`, { qos: 1 });
  client.publish(`${prefix}/humidity`, JSON.stringify({ value: 48 }), { qos: 1 });
});

client.on("message", (topic, payload) => {
  console.log(topic, payload.toString());
});

client.on("error", (err) => console.error(err.message));

Exemple dans le navigateur en WSS

Les navigateurs ne peuvent pas ouvrir de sockets TCP bruts : ils utilisent donc MQTT sur WebSocket. Les pages servies en HTTPS doivent utiliser wss:// sur le port 8084. Empaquetez le code ci-dessous avec votre outil préféré (Vite, webpack, esbuild) :

import mqtt from "mqtt";

const clientId = "web-" + Math.random().toString(16).slice(2, 8);
const prefix = `connectmq/demo/${clientId}`;

const client = mqtt.connect("wss://broker.connectmq.com:8084/mqtt", {
  clientId,
  protocolVersion: 5,
});

client.on("connect", () => {
  client.subscribe(`${prefix}/#`);
  client.publish(`${prefix}/hello`, "Hello from the browser");
});

client.on("message", (topic, payload) => {
  const line = document.createElement("div");
  line.textContent = `${topic}: ${payload.toString()}`;
  document.body.appendChild(line);
});

Pour approfondir les chemins, les ports et les proxys, lisez MQTT sur WebSocket.

Serveur MQTT public gratuit ou broker privé

Le serveur MQTT public gratuit est un bac à sable, réservé aux tests et aux prototypes. Passez à un broker privé dès que l'une de ces conditions est remplie :

Vous avez besoin de… Serveur MQTT public gratuit Broker privé sur app.connectmq.com
Confidentialité N'importe qui dans la zone publique peut lire vos topics Les topics d'un tenant sont isolés des autres tenants et de la zone publique
Authentification Anonyme, client ID uniquement Nom d'utilisateur, mot de passe et client ID émis pour chaque broker
Taille des messages 64 Ko 256 Ko en Serverless (Free), 1 Mo en Serverless (Paid)
Connexions Pour les tests Jusqu'à 25 (Free), jusqu'à 1 000 (Paid), ou un cluster Dedicated
Outillage Vos propres clients Portail avec client MQTT dans le navigateur, explorateur de topics en temps réel, tableau de bord et règles d'alerte

Signes typiques que vous avez dépassé la zone publique : vous envoyez de vraies données clients ou d'appareils, vous ne voulez plus que d'autres voient vos noms de topics, vous avez besoin d'identifiants stables pour une flotte d'appareils, ou vous voulez un tableau de bord et des alertes sur vos données. La migration se résume surtout à un changement de configuration : gardez le même code et ajoutez le nom d'utilisateur, le mot de passe et le client ID fournis par le portail :

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="YOUR_CLIENT_ID", protocol=mqtt.MQTTv5)
client.username_pw_set("YOUR_USERNAME", "YOUR_PASSWORD")
client.tls_set()
client.connect("broker.connectmq.com", 8883)

Avant la mise en production, passez en revue nos bonnes pratiques de sécurité MQTT.

Démarrer avec ConnectMQ

Prêt à garder vos données privées ? Passez à un broker MQTT managé privé. Créez un compte gratuit sur app.connectmq.com : l'offre Serverless (Free) ne demande pas de carte bancaire. Choisissez une offre, créez un broker et copiez le nom d'utilisateur, le mot de passe et le client ID générés. Votre premier message privé n'est qu'à quelques minutes.

Questions fréquentes

broker.connectmq.com est-il vraiment gratuit ?

Oui. La zone publique de broker.connectmq.com est gratuite pour les tests, l'apprentissage et les démos, sans inscription. Elle est soumise à des limites d'usage raisonnable, comme 64 Ko par message et 10 messages par seconde et par client.

Faut-il un nom d'utilisateur et un mot de passe pour le broker MQTT public ?

Non. Connectez-vous sans identifiants, avec un client ID unique et non vide. Un client ID vide est refusé.

D'autres personnes peuvent-elles voir mes messages sur un broker MQTT public ?

Oui. Tout ce qui est publié dans la zone publique peut être lu par n'importe quel autre client public : utilisez un préfixe de topic unique et n'envoyez jamais de données personnelles ou sensibles. Pour des données privées, créez un broker sur app.connectmq.com.

Quelles versions de MQTT et quels ports le serveur MQTT public gratuit prend-il en charge ?

Il prend en charge MQTT 3.1.1 et MQTT 5.0 en TCP sur le port 1883, en TLS sur le port 8883, en WebSocket sur le port 8083 et en WebSocket sécurisé sur le port 8084 (chemin /mqtt).

Puis-je utiliser le broker MQTT public gratuit en production ?

Il n'est pas conçu pour la production. Pour tout déploiement réel, utilisez un broker MQTT managé ConnectMQ privé avec identifiants, isolation des tenants et limites plus élevées.

Articles liés

Les meilleurs outils CLI MQTT pour tester, scripter et déboguer

Un comparatif pratique de mosquitto_pub/sub, MQTTX CLI, HiveMQ MQTT CLI, la CLI MQTT.js, curl et mqttui, avec le même test exécuté sur le serveur MQTT public gratuit broker.connectmq.com pour choisir le bon outil pour le scripting et le débogage.

9 min de lecture

Tous les articles →

Votre broker MQTT privé, à quelques clics

Créez un compte, récupérez les identifiants de votre broker et connectez votre premier appareil — aucun serveur à installer, mettre à jour ou dimensionner.