11

mosquitto ライブラリを使って MQTT プロトコルを使いたいです。

まず、mosquitto-clients のインストールをテストしたいと思います。

 sudo apt-get install mosquitto-clients

このプログラムは、2 つの「メソッド」を提供します。

  • mosquitto_pub
  • mosquitto_sub

この指示に従って、新しいトピックを送信しようとしています:

mosquitto_sub -d -t newtopic/test

デフォルトのホスト/ポート [localhost/1883] を使用します。

私は得る:

Error: Connection refused

エラーとしてあまりにも一般的です..誰かが私を助けることができますか?
ファイアウォールの問題でしょうか?この場合、これが問題かどうかを確認するにはどうすればよいですか?

Linux ubuntu を使用しています ( 3.8.0-42-generic #62~precise1-Ubuntu)

nb libmosquitto を使用してカスタム プログラムを作成する場合と同じ動作です。

4

8 に答える 8

14

mosquitto_pub/sub のデフォルトのホスト:ポートの組み合わせは、localhost:1883 です。ローカル コンピューターで実行されているブローカーがない場合は、もちろん接続できません。

解決策は、ローカル コンピューターでブローカーを実行するか、接続先をユーティリティに指示することです。例えば:

mosquitto_sub -t newtopic/test -h test.mosquitto.org
于 2014-07-03T14:30:18.013 に答える
10

他の答えはどれも私にとってはうまくいきませんでした。私の場合、mosquitto 1.X から mosquitto 2.0 にアップグレードしました。これには、新しい構成を に追加する必要がありますmosquitto.conf

listener 1883

localhost 以外のクライアントが接続する場合 (つまり、Docker 経由)

于 2021-03-15T21:54:39.827 に答える
3

私は同じ問題を経験しました。私にとっては、mosquittomqtt v5 サポートのアップグレードでした。

$ mosquitto --version
mosquitto version 2.0.14
mosquitto is an MQTT v5.0/v3.1.1/v3.1 broker.

ただし、アップグレードされたブローカーは匿名接続をサポートしなくなりました。

$ mosquitto_pub -t mytopic -m "Hello World"
Connection error: Connection Refused: not authorised.
Error: The connection was refused.

これはおそらくより良いデフォルトですが、実験するときは使いにくいです。匿名接続を許可するようにブローカーを構成するには:

$ cat /etc/mosquitto/conf.d/standard.conf
listener 1883
protocol mqtt
allow_anonymous true

$ sudo systemctl restart mosquitto.service

それでは、ちょっとプレスト:

$ mosquitto_pub -t mytopic -m "Hello World"
于 2021-12-30T07:16:46.193 に答える