mosquittoでMQTT over WebSocket
Ubuntu serverで、moquittoを使ったMQTTブローカを立てた。
備忘録として手順をメモしておく。
ポート開放
# この設定は再起動後に有効になる sudo ufw enable sudo ufw default DENY sudo ufw allow 80/tcp sudo ufw allow 1883/tcp
mosquittoのインストール
sudo apt-get install mosquitto # publish, subscribeをローカルで試したい場合のみ sudo apt-get install mosquitto-client
lighttpdのインストール
sudo apt-get install automake sudo apt-get install libtool sudo apt-get install pkg-config sudo apt-get install libpcre3 libpcre3-dev sudo apt-get install openssl libssl-dev sudo apt-get install git-core sudo apt-get install libbz2-dev sudo apt-get install g++ sudo apt-get install unzip sudo apt-get install make git clone --recursive git://github.com/nori0428/mod_websocket.git git clone --recursive https://github.com/lighttpd/lighttpd1.4.git cd lighttpd1.4 git checkout lighttpd-1.4.33 cd ../mod_websocket ./bootstrap ./configure --with-lighttpd=/home/youku_s/lighttpd1.4 make install cd ../lighttpd1.4 ./autogen.sh ./configure --with-websocket=all make sudo make install
lighttpdの設定
/home/youku_s/lighttpd1.4/websocket.conf
を以下の内容で作成する。
server.document-root= "/home/youku_s/www/" server.port = 80 server.modules = ( "mod_websocket" ) websocket.server = ("/mqtt" => ( "host" => "127.0.0.1", "port" => "1883", "type" => "binary", "subproto" => "mqttv3.1" ), ) websocket.timeout=300 mimetype.assign = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png" )
lighttpdの起動
lighttpd -D -f websocket.conf
その他
WebSocketとして接続するには、80ポートで接続する。 それ以外は、1883ポートを使用する。