En utilisant Docker, j'ai pu utiliser eclipse-mosquitto
pour configurer un courtier MQTT avec mon application, qui s'abonnait aux messages. J'apprends Docker en ce moment, donc voulu essayer d'ajouter deux courtiers à Docker-Compose avec des ports différents cartographiés comme ceci:Configuration de plusieurs courtiers MQTT avec Docker
version: '3'
services:
myapp:
...
links:
- mqtt
- mqtt2
depends_on:
- mqtt
- mqtt2
mqtt:
image: eclipse-mosquitto:latest
container_name: mqtt-iot
ports:
- 1883:1883
mqtt2:
image: eclipse-mosquitto:latest
container_name: mqtt2-iot
ports:
- 1884:1883
De extérieur du conteneur myapp
(ie de mon terminal OS X), les deux mqtt
et mqtt2
fonctionnent; Je peux publier et m'abonner aux messages comme prévu.
const mqtt = require('mqtt')
mqtt.connect('mqtt://mqtt', {port: 1883}) // Success
mqtt.connect('mqtt://mqtt2', {port: 1884}) // Success
Cependant, quand je suis à l'intérieur du conteneur de myapp
, je ne peux me connecter à mqtt
. La connexion mqtt2
déclenche immédiatement l'événement offline
et aucune connexion échoue. Que dois-je faire pour que myapp
utilise correctement ces deux courtiers?
Afficher plus de votre code myapp – hardillb