Ubutu Mosquittoの導入と関連する構成(websocket対応)


最近会社はMQTTを使って会社の既存のユビキタスネットワーク設備を再編して、幸いにもMQTTの1つのサービス端Mosquittoについて研究することができて、Socketの方式を支持するのはとても良い配置ですが、WebSoketの配置の上でやはり多くの回り道を歩いて、ネット上で多くの資料を調べて、今配置の過程の中で出会った問題を総括します.簡単な後のレビュー:まずMosquittoインストールファイルのダウンロードアドレスをダウンロードする:http://mosquitto.org/files/source/ 1.4.8の最新バージョンで導入しました!参照配置アドレス:http://blog.csdn.net/xukai871105/article/details/39252653 このブログはwebsocketのサポートがありません.次のブログはWebsocketの導入時に、最新のlibwebssocketsをダウンロードしてサーバにコンパイルする必要があります.ダウンロード先:https://github.com/warmcat/libwebsockets ダウンロードが完了したらlibwebsocketsディレクトリに入ります
mkdir build
cd build
cmake .. -DOPENSSL_ROOT_DIR=/usr/bin/openssl
make
sudo make install

mosquitto 1.4の最新バージョンをインストールすると、多かれ少なかれ問題が発生します.centosシステムを使っていますが、システムの暗黙の了解は多くインストールしていませんubuntuシステムだと仮定してapt-getを使用してyumの代わりにまず各種のツールyum install gcc-c++libstdc+++-develのコンパイルの過程の中で問題をインストールします:1.ssh.h yum install openssl-devel 2.ares.h yum install c-ares-develが見つかりません3.webssocketを追加したらgitツールyum install git wget http://git.warmcat.com/cgi-bin/cgit/libwebsockets/snapshot/libwebsockets⑴.3-chrome37-firefox30.tar.gz tar -zxvf libwebsockets⑴.3-chrome37-firefox30.tar.gz cd libwebsockets⑴.3-chrome37-firefox30 mkdir build cd build cmake .. -DOPENSSL_ROOT_DIR=/usr/bin/openssl make sudomake install 4.uuid.h yum install libuuid-devel 5.mosquitto:error while loading shared libraries:libwebsockets.so. so. 4.0.0:canonononoopen shared objectfile:No such file or directoryライブラリの問題sudoln-s/usr/usr/local/libwebsockets.so. 4.0.0/usr/lib/lib/liwebsockets.so. so. 4.0.0/usr/lib/lib/bliweb/liweb/liwebssockets.sockets.sockets..4.0.0まだだめなら:sudo vi/etc/ld.so.conf.d/lib64c.conf …and add the following lines:- ==lib64c default configuration /usr/local/lib64 …and then:- sudo ldconfig
新しいMosquittoバージョン1.4.2ではWebSocketがサポートされています.これにより、HTML 5クライアントがMQTTを使用する方法が提供されますが、MQTT接続のデフォルトではWebSocket接続はサポートされていません.まず、MosquittoがWebSocketをサポートするように設定します.
ステップ1:インストール前に使用する依存パッケージ:sudoapt-getupdate sudo apt-get install build-essential python quilt devscripts python-setuptools python 3 sudoapt-getinstalllibssl-dev sudo apt-get install cmake sudoapt-getinstalllibc-ares-dev sudo apt-get install uuid-dev sudoapt-getinstalldaemonステップ2:ダウンロードしてコンパイルするlibwebsockets wgetのインストールhttp://git.libwebsockets.org/cgi … 3-firefox-36.tar.gz tarzxvflibwebsockets−1.4−chrome43−firefox−36.tar.gz cd libwebsockets-1.4-chrome43-firefox-36 mkdirbuild cd build cmake.. make install ldconfig cd
ステップ3:最新版mosquitto 1.4.2をダウンロードしてコンパイルインストール
$ wget http://mosquitto.org/files/source/mosquitto-1.4.2.tar.gz tarzxvfmosquitto−1.4.2.tar.gz cd mosquitto-1.4.2 configure.mkでのWITH_を変更WEBSOCKETS:=noになります(このステップはWebSocketサポートです)
WITH_WEBSOCKETS:=yes make make install$cp mosquitto.conf/etc/mosquitto第4歩:MosquittoがWebSocketを使用できるように構成する
/etc/mosquitto/mosquitto.confの「Default Listener」セクションには、port 1883 listener 9001 protocol websockets追加したファイルの行をいくつか追加してください.
port 1883 listener 9001 protocol websockets第5歩:Mosquittoユーザーの追加:
ステップ6:Mosquitto rebootを実行する
$mosquitto-c/etc/mosquitto/mosquitto.conf Websocketクライアントを使用してMQTTサーバの9001ポートに接続してみてください!!!
よくある質問
This tutorial explains basic steps of installing mosquitto server on openwrt platform. Mosquitto exists in openwrt barrier breaker repository but I decided to crosscompile it. At host computer in openwrt directory call :
uros-petrevski-2:bin uros$ ./scripts/feeds install mosquitto-nossl This will install version that don’t support ssl layer because we don’t need it. We need server that is fast. Run make menuconfig and under Network select mosquitto nossl as M package.
uros-petrevski-2:bin uros$ make J=4 Then copy mosquitto package to weio. Mosquitto don’t have any dependencies.
uros-petrevski-2:packages uros$ scp/Volumes/openwrt/carambola/bin/ramips/packages/mosquitto-nossl_1.0.3-1_ramips.ipk [email protected]:/tmp Now it’s time to install mosquitto
root@Weio:/tmp# opkg install mosquitto-nossl_1.0.3-1_ramips.ipk -d root If you run mosquitto now it will break :
root@Weio:/tmp# mosquitto
11145: Error: Invalid user ‘mosquitto’. The reason is simple, user is not configured. As user is root we have to declare root user un mosquitto configuration. So edit/etc/mosquitto/mosquitto.conf file and add at user section
user root If you want to run manually mosquitto (you can see what is happening with clients on the console) you have to do :
root@Weio:/# mosquitto -c/etc/mosquitto/mosquitto.conf Parameter -c specify path to conf file. However if you want to run automaticaly on startup mosquitto server do following
root@Weio:/#/etc/init.d/mosquitto enable Once system rebooted you can see mosquitto server running by :
root@Weio:/# ps | grep mosquitto 2570 root 932 S/usr/sbin/mosquitto -c/etc/mosquitto/mosquitto.conf 2574 root 1488 S grep mosquitto
完了後にWebSoketが成功したかどうかをテスト
http://download.csdn.net/detail/a358763471/8491993
これをダウンロードしてテストすればいいです.
参考資料の提供に感謝します.http://blog.csdn.net/xukai871105/article/details/39252653 http://www.tuicool.com/articles/ba6Vja http://blog.csdn.net/qiaofeiw/article/details/8760340 http://blog.csdn.net/qiaofeiw/article/details/8760340 http://download.csdn.net/detail/a358763471/8491993 http://www.wfuyu.com/Internet/22690.html