ほかの人にリモートのサーバを用意してもらったが、うまく接続できていない。
ファイヤーフォールでポートに制限をかけているのか、センサーデバイスがつながっていないのか。。。
ネットワークの設定を疑うには、自分のコードを疑ってみようと思った。
まずは、いろいろな制限のないローカルでmosquittoサーバを立ち上げて、自分のmosquitto接続できるようにしていこうと思う。
下記のページを参考(ほぼコピー)にして、自分でためしてみたことを追記していく感じにしようとおもいます、。
https://qiita.com/github0013@github/items/7c410216b74f29919da8
下記のページを参考にして、自分でためしてみたことを追記していく感じにしようとおもいます、。
https://edts.hatenablog.com/entry/2022/03/21/203949
version: "3" services: mosquitto-publisher: build: ./docker-compose-mqtt.yml container_name: mosquitto-publisher tty: true mosquitto-subscriber: build: ./docker-compose-mqtt.yml container_name: mosquitto-subscriber tty: true broker: image: eclipse-mosquitto container_name: mosquitto-broker volumes: - ./mosquitto/config:/mosquitto/config - ./mosquitto/data:/mosquitto/data - ./mosquitto/log:/mosquitto/log user: "1000:1000"
persistence true persistence_location /mosquitto/data/ log_dest file /mosquitto/log/mosquitto.log log_type all # 全部 # この2つの設定がないとdocker-compose内のclientからアクセスできない(Connection Refused: not authorisedが出る) # コンテナ間で通信する設定 listener 1883 allow_anonymous true
クライアント側ではsudo apt-get install -y mosquitto-clientsなどとしてmosquitto_sub、mosquitto_pubコマンドを手に入れておく。
docker-compose -f ./docker-compose-mqtt.yml up -d
# コンテナ名確認 docker-compose -f ./docker-compose-mqtt.yml ps
docker exec -it 上記で確認したコンテナ名 bash
/mosquitto-no-auth.confというファイルがあり、これに認証無しで他ホストから接続できるようにする設定が書いてある。
mosquitto_sub -h broker -t topic_name
mosquitto_pub -h broker -t topic_name -m message