LoginSignup
5
7

More than 5 years have passed since last update.

raspberry piにwebsocketを有効にしたmosquittoをインストールする

Last updated at Posted at 2016-01-06

2016/1/10追記

これだけではmosquitto.confでwebsocketsを使用する際にエラーが出ます。調査中。

こちらと,こちらの記事を参照しました。

mosquittoの構築

ソースコードの入手

2015/1/6時点では1.4.7がありました。

$ wget http://mosquitto.org/files/source/mosquitto-1.4.7.tar.gz 
$ tar -xvzf mosquitto-1.4.7.tar.gz 

websocketsを有効にする

websocketsを有効にしたかったのでconfig.mkの以下の行を変更

# Build with websockets support on the broker.
#WITH_WEBSOCKETS:=no
WITH_WEBSOCKETS:=yes

make

make時にcmakeが必要になるのでapt-getしておきます。準備できたらおもむろにmakeします。

$ cmake .
$ make all
$ sudo make install

不足しているライブラリ

足りないライブラリが出てくるので地道にインストール。
例えばコンパイル時に以下のエラーが出てきたら

mosquitto.c:46:29: fatal error: libwebsockets.h: そのようなファイルやディレクトリはありません
 #  include <libwebsockets.h>
                             ^

apt-cacheコマンドで地道に探す。

$ apt-cache search websockets
(略)
libqt5websockets5 - Qt 5 Web Sockets module
libqt5websockets5-dev - Qt 5 Web Sockets module - development files
libwebsocketpp-dev - C++/Boost Asio based websocket client/server library. Dev package
(略)

あたりをつけて

$ sudo apt-get install libwebsockets-dev 

結局apt-get installしたのは以下のとおり。

  • libwebsockets-dev
  • uuid-dev

動作確認

まずブローカを動かします。

$ mosquitto -v
1452117847: mosquitto version 1.4.7 (build date 2016-01-07 06:57:15+0900) starting
1452117847: Using default config.
1452117847: Opening ipv4 listen socket on port 1883.
1452117847: Opening ipv6 listen socket on port 1883.

別のターミナルからメッセージをpubします。

$ mosquitto_pub -h localhost -p 1883 -t hello -m world

そうするとブローカーが動作しているターミナルに出てきます。

1452118052: New connection from ::1 on port 1883.
1452118052: New client connected from ::1 as mosqpub/2577-raspberryp (c1, k60).
1452118052: Sending CONNACK to mosqpub/2577-raspberryp (0, 0)
1452118052: Received PUBLISH from mosqpub/2577-raspberryp (d0, q0, r0, m0, 'hello', ... (5 bytes))
1452118052: Received DISCONNECT from mosqpub/2577-raspberryp
1452118052: Client mosqpub/2577-raspberryp disconnected.

ローカル環境下ですがちゃんと動いています。

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7