Setting up more than one MQTT broker with Docker -
using docker, able use eclipse-mosquitto set mqtt broker app, subscribes messages. i'm learning docker right now, wanted try adding 2 brokers docker-compose different ports mapped this:
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 from outside of myapp container (i.e. os x terminal), both mqtt , mqtt2 working; can publish , subscribe messages expected.
const mqtt = require('mqtt') mqtt.connect('mqtt://mqtt', {port: 1883}) // success mqtt.connect('mqtt://mqtt2', {port: 1884}) // success however, when i'm inside container of myapp, can connect mqtt. mqtt2 connection fires offline event right away, , no connection fails. need myapp using both of brokers properly?
two issues here
links: - mqtt - mqtt2 links deprecated , not required in compose. next when use below
const mqtt = require('mqtt') mqtt.connect('mqtt://mqtt', {port: 1883}) // success mqtt.connect('mqtt://mqtt2', {port: 1884}) // success from outside. based on ports on host. when app container should below
const mqtt = require('mqtt') mqtt.connect('mqtt://mqtt', {port: 1883}) // success mqtt.connect('mqtt://mqtt2', {port: 1883}) // success the container cannot see mapped port on host. see inside network. , in local network both listen on 1883
Comments
Post a Comment