Linux ビルド MQTT サーバーのチュートリアル

私の 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 サーバーは構成されています。お役に立てれば幸いです。

おすすめ

転載: blog.csdn.net/m0_64655190/article/details/130601911