私の Linux バージョンは ubuntu 5.4.0-148-generic (buildd@lcy02-amd64-056) です。ubuntu ではない場合は、後続のコマンドの使用方法が若干異なる場合があります。
1. ソフトウェアをインストールする
次のコマンドを入力して 1 つずつインストールします。これらのツールが環境内にすでにある場合は、再度インストールする必要はありません。
apt-get install gcc
apt-get install c++
apt-get install cmake
apt-get install openssl
apt-get install libssl-dev
特定のパスに新しいフォルダー ソフトウェアを作成します (ルート ディレクトリには推奨されません)。ここでダウンロードしたバージョンはバージョン 1.4.12 です。他のバージョンが必要な場合は、バージョン番号を変更できます。
mkdir software
cd software
wget http://mosquitto.org/files/source/mosquitto-1.4.12.tar.gz
tar -xzf mosquitto-1.4.12.tar.gz
他のソフトウェアをインストールする
apt-get install uuid-dev
wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
tar xvf c-ares-1.10.0.tar.gz
cd c-ares-1.10.0
./configure
make
sudo make install
モスキートの設定を変更します。
cd mosquitto-1.4.12
vi config.mk
WITH_SRV:=yes と WITH_UUID:=yes を # でコメントアウトします。:wq 保存して終了
mosquittoをコンパイルしてインストールする
make
sudo make install
2. テストを開始する
ユーザーを作成
sudo groupadd mosquitto
sudo useradd -g mosquitto mosquitto
設定プログラム
mv /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf
プログラムを開始する
mosquitto -c /etc/mosquitto/mosquitto.conf -d
プログラムのデフォルトのポートは 1883 です
プログラムのポートを確認したい場合は、プログラムの起動時に -d を削除してください
mosquitto -c /etc/mosquitto/mosquitto.conf
または、netstat ツールを使用してポートをクエリすることもできます
netstat -anp | grep mosquitto
MQTT のサブスクリプションと公開の検証
購読期間:
mosquitto_sub -t hello
上記コマンドを実行すると、libcares.so.2のダイナミックライブラリが欠落していると報告される場合があります(XXX.soの欠落は以下の方法で解決できます)。
find コマンドを使用して、libcare.so.2 ダイナミック ライブラリ パスがどこにあるかをクエリします。
ソフト接続を作成する
ln -s ./c-ares-1.10.0/.libs/libcares.so.2 libcares.so.2
環境変数を追加する
export LD_LIBRARY_PATH=./
再度購読する
mosquitto_sub -t hello
これは成功したサブスクリプションです。
上記の私によると、この問題を解決する場合の欠点の 1 つは、ウィンドウを再度開くたびに、メッセージをサブスクライブおよびパブリッシュするために環境変数を再構成する必要があることです。2 番目の方法は、デフォルトの環境変数パスの下にソフト リンクを作成することです。これにより、環境変数を毎回再構成する必要がなくなります。
ウィンドウを再度開き、ウィンドウを放します。 次のコマンドを実行します。
mosquitto_pub -t hello -h localhost -m "hello world!"
プログラムのスクリーンショット
この時点で、MQTT サーバーは構成されています。お役に立てれば幸いです。