ユーザ用ツール

サイト用ツール


mae3xx_tips:setup_mosquitto:start

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
mae3xx_tips:setup_mosquitto:start [2014/04/09 17:45]
admin
mae3xx_tips:setup_mosquitto:start [2014/04/09 18:04] (現在)
admin
ライン 1: ライン 1:
 +====== Mosquittoの導入 (MQTT) ======
 +
 +===== MQTTとは =====
 +
 +ここのページに非常にわかりやすいまとめがあります。\\
 +[[http://​tdoc.info/​blog/​2014/​01/​27/​mqtt.html|そこはかとなく書くよん。 - MQTTについてのまとめ]]
 +
 +ここでは、[[http://​mosquitto.org/​|Mosquitto]] をセットアップする方法を紹介します。
 +
 +\\
 +
 +===== セットアップ =====
 +
 +==== PPAの追加 ====
 +
 +[[https://​launchpad.net/​~mosquitto-dev/​+archive/​mosquitto-ppa/​|Mosquitto PPA]] を、add-apt-repository コマンドで追加します。
 +
 +<​code>​
 +user1@plum:​~$ sudo add-apt-repository ppa:​mosquitto-dev/​mosquitto-ppa
 +[sudo] password for user1: ​
 + 
 + More info: https://​launchpad.net/​~mosquitto-dev/​+archive/​mosquitto-ppa
 +Press [ENTER] to continue or ctrl-c to cancel adding it
 +
 +gpg: keyring `/​tmp/​tmpfmypnq/​secring.gpg'​ created
 +gpg: keyring `/​tmp/​tmpfmypnq/​pubring.gpg'​ created
 +gpg: requesting key 262C4500 from hkp server keyserver.ubuntu.com
 +gpg: /​tmp/​tmpfmypnq/​trustdb.gpg:​ trustdb created
 +gpg: key 262C4500: public key "​Launchpad mosquitto"​ imported
 +gpg: Total number processed: 1
 +gpg:               ​imported:​ 1  (RSA: 1)
 +OK
 +user1@plum:​~$
 +</​code>​
 +
 +\\
 +
 +==== パッケージリストの更新 ====
 +
 +"​apt-get update"​ により、パッケージリストの更新を行います。
 +
 +<​code>​
 +user1@plum:​~$ sudo apt-get update
 +Ign http://​ppa.launchpad.net saucy InRelease  ​
 +Ign http://​ports.ubuntu.com saucy InRelease ​  
 +Get:1 http://​ppa.launchpad.net saucy Release.gpg [316 B]
 +Ign http://​ports.ubuntu.com saucy-updates InRelease  ​
 +Get:2 http://​ppa.launchpad.net saucy Release [11.9 kB]
 +Ign http://​ports.ubuntu.com saucy-security InRelease ​      
 +Hit http://​ports.ubuntu.com saucy Release.gpg ​     ​
 +Get:3 http://​ports.ubuntu.com saucy-updates Release.gpg [933 B]
 +Get:4 http://​ppa.launchpad.net saucy/main armhf Packages [1328 B]
 +Get:5 http://​ports.ubuntu.com saucy-security Release.gpg [933 B]
 +Hit http://​ports.ubuntu.com saucy Release ​                             ​
 +Get:6 http://​ports.ubuntu.com saucy-updates Release [49.6 kB]          ​
 +Get:7 http://​ports.ubuntu.com saucy-security Release [49.6 kB]           
 +Ign http://​ppa.launchpad.net saucy/main Translation-en ​  
 +Hit http://​ports.ubuntu.com saucy/main armhf Packages ​   ​
 +Hit http://​ports.ubuntu.com saucy/​restricted armhf Packages
 +Hit http://​ports.ubuntu.com saucy/​universe armhf Packages
 +Hit http://​ports.ubuntu.com saucy/main Translation-en
 +Hit http://​ports.ubuntu.com saucy/​restricted Translation-en
 +Hit http://​ports.ubuntu.com saucy/​universe Translation-en
 +Get:8 http://​ports.ubuntu.com saucy-updates/​main armhf Packages [219 kB]
 +Get:9 http://​ports.ubuntu.com saucy-updates/​restricted armhf Packages [14 B]                                 
 +Get:10 http://​ports.ubuntu.com saucy-updates/​universe armhf Packages [149 kB]                                ​
 +Get:11 http://​ports.ubuntu.com saucy-updates/​main Translation-en [106 kB]                                    ​
 +Hit http://​ports.ubuntu.com saucy-updates/​restricted Translation-en ​                                         ​
 +Hit http://​ports.ubuntu.com saucy-updates/​universe Translation-en ​                                           ​
 +Get:12 http://​ports.ubuntu.com saucy-security/​main armhf Packages [110 kB]                                   
 +Get:13 http://​ports.ubuntu.com saucy-security/​restricted armhf Packages [14 B]                               
 +Get:14 http://​ports.ubuntu.com saucy-security/​universe armhf Packages [34.8 kB]                              ​
 +Hit http://​ports.ubuntu.com saucy-security/​main Translation-en ​                                              
 +Hit http://​ports.ubuntu.com saucy-security/​restricted Translation-en ​                                        
 +Hit http://​ports.ubuntu.com saucy-security/​universe Translation-en ​                                          
 +Fetched 734 kB in 12s (61.1 kB/s)                                                                            ​
 +Reading package lists... Done
 +user1@plum:​~$
 +</​code>​
 +
 +\\
 +
 +Mosquitto関係のパッケージを検索してみます。
 +
 +<​code>​
 +user1@plum:​~$ sudo apt-cache search mosquitto
 +libmosquitto0 - MQTT version 3.1 client library
 +libmosquitto0-dev - MQTT version 3.1 client library, development files
 +libmosquittopp0 - MQTT version 3.1 client C++ library
 +libmosquittopp0-dev - MQTT version 3.1 client C++ library, development files
 +mosquitto - MQTT version 3.1 compatible message broker
 +mosquitto-clients - Mosquitto command line MQTT clients
 +python-mosquitto - MQTT version 3.1 Python client library
 +python3-mosquitto - MQTT version 3.1 Python 3 client library
 +libmosquitto-dev - MQTT version 3.1 client library, development files
 +libmosquittopp-dev - MQTT version 3.1 client C++ library, development files
 +user1@plum:​~$
 +</​code>​
 +
 +クライアント(ライブラリ/​アプリケーション)、ブローカーサーバーなどが導入できることがわかります。
 +
 +\\
 +
 +==== クライアントの導入 ====
 +
 +mosquitto-clients を導入します。
 +
 +<​code>​
 +user1@plum:​~$ sudo apt-get install mosquitto-clients
 +Reading package lists... Done
 +Building dependency tree       
 +Reading state information... Done
 +The following extra packages will be installed:
 +  libmosquitto0
 +The following NEW packages will be installed:
 +  libmosquitto0 mosquitto-clients
 +0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
 +Need to get 30.6 kB of archives.
 +After this operation, 147 kB of additional disk space will be used.
 +Do you want to continue [Y/​n]? ​
 +Get:1 http://​ports.ubuntu.com/​ubuntu-ports/​ saucy/​universe libmosquitto0 armhf 0.15-2ubuntu1 [13.1 kB]
 +Get:2 http://​ports.ubuntu.com/​ubuntu-ports/​ saucy/​universe mosquitto-clients armhf 0.15-2ubuntu1 [17.5 kB]
 +Fetched 30.6 kB in 1s (25.6 kB/s)       
 +Selecting previously unselected package libmosquitto0.
 +(Reading database ... 18538 files and directories currently installed.)
 +Unpacking libmosquitto0 (from .../​libmosquitto0_0.15-2ubuntu1_armhf.deb) ...
 +Selecting previously unselected package mosquitto-clients.
 +Unpacking mosquitto-clients (from .../​mosquitto-clients_0.15-2ubuntu1_armhf.deb) ...
 +Setting up libmosquitto0 (0.15-2ubuntu1) ...
 +Setting up mosquitto-clients (0.15-2ubuntu1) ...
 +Processing triggers for libc-bin ...
 +localepurge:​ Disk space freed in /​usr/​share/​locale:​ 0 KiB
 +localepurge:​ Disk space freed in /​usr/​share/​man:​ 0 KiB
 +
 +Total disk space freed by localepurge:​ 0 KiB
 +
 +user1@plum:​~$
 +</​code>​
 +
 +\\
 +
 +導入されたアプリケーションのファイルを確認してみます。
 +
 +<​code>​
 +user1@plum:​~$ sudo dpkg -L mosquitto-clients
 +/.
 +/usr
 +/usr/bin
 +/​usr/​bin/​mosquitto_sub
 +/​usr/​bin/​mosquitto_pub
 +/usr/share
 +/​usr/​share/​man
 +/​usr/​share/​man/​man1
 +/​usr/​share/​man/​man1/​mosquitto_pub.1.gz
 +/​usr/​share/​man/​man1/​mosquitto_sub.1.gz
 +/​usr/​share/​doc
 +/​usr/​share/​doc/​mosquitto-clients
 +/​usr/​share/​doc/​mosquitto-clients/​copyright
 +/​usr/​share/​doc/​mosquitto-clients/​changelog.Debian.gz
 +user1@plum:​~$
 +</​code>​
 +
 +\\
 +
 +==== サーバーブローカーの導入 ====
 +
 +サーバーブローカーを導入します。
 +
 +<​code>​
 +user1@plum:​~$ sudo apt-get install mosquitto
 +Reading package lists... Done
 +Building dependency tree       
 +Reading state information... Done
 +The following extra packages will be installed:
 +  apparmor libapparmor-perl libapparmor1
 +Suggested packages:
 +  apparmor-profiles apparmor-docs apparmor-utils
 +The following NEW packages will be installed:
 +  apparmor libapparmor-perl libapparmor1 mosquitto
 +0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
 +Need to get 438 kB of archives.
 +After this operation, 1269 kB of additional disk space will be used.
 +Do you want to continue [Y/​n]? ​
 +Get:1 http://​ports.ubuntu.com/​ubuntu-ports/​ saucy-updates/​main libapparmor1 armhf 2.8.0-0ubuntu31.1 [38.1 kB]
 +Get:2 http://​ports.ubuntu.com/​ubuntu-ports/​ saucy-updates/​main libapparmor-perl armhf 2.8.0-0ubuntu31.1 [32.1 kB]
 +Get:3 http://​ports.ubuntu.com/​ubuntu-ports/​ saucy-updates/​main apparmor armhf 2.8.0-0ubuntu31.1 [314 kB]
 +Get:4 http://​ports.ubuntu.com/​ubuntu-ports/​ saucy/​universe mosquitto armhf 0.15-2ubuntu1 [54.1 kB]
 +Fetched 438 kB in 3s (122 kB/s) 
 +Preconfiguring packages ...
 +Selecting previously unselected package libapparmor1.
 +(Reading database ... 18549 files and directories currently installed.)
 +Unpacking libapparmor1 (from .../​libapparmor1_2.8.0-0ubuntu31.1_armhf.deb) ...
 +Selecting previously unselected package libapparmor-perl.
 +Unpacking libapparmor-perl (from .../​libapparmor-perl_2.8.0-0ubuntu31.1_armhf.deb) ...
 +Selecting previously unselected package apparmor.
 +Unpacking apparmor (from .../​apparmor_2.8.0-0ubuntu31.1_armhf.deb) ...
 +Selecting previously unselected package mosquitto.
 +Unpacking mosquitto (from .../​mosquitto_0.15-2ubuntu1_armhf.deb) ...
 +Processing triggers for ureadahead ...
 +Setting up libapparmor1 (2.8.0-0ubuntu31.1) ...
 +Setting up libapparmor-perl (2.8.0-0ubuntu31.1) ...
 +Setting up apparmor (2.8.0-0ubuntu31.1) ...
 +Processing triggers for ureadahead ...
 +Setting up mosquitto (0.15-2ubuntu1) ...
 +mosquitto start/​running,​ process 1774
 +Processing triggers for libc-bin ...
 +Processing triggers for ureadahead ...
 +localepurge:​ Disk space freed in /​usr/​share/​locale:​ 0 KiB
 +localepurge:​ Disk space freed in /​usr/​share/​man:​ 0 KiB
 +
 +Total disk space freed by localepurge:​ 0 KiB
 +
 +user1@plum:​~$
 +</​code>​
 +
 +\\
 +
 +サーバーブローカーを導入すると、自動でサービスとして起動します。
 +
 +<​code>​
 + 1774 ?        Ss     0:00 /​usr/​sbin/​mosquitto -c /​etc/​mosquitto/​mosquitto.conf
 +</​code>​
 +
 +\\
 +
 +===== 実行例 =====
 +
 +早速、導入したホスト上で、PUB/​SUB の実験をしてみます。
 +
 +ターミナルで、Subscribe するクライアントを立ち上げておきます。\\
 +トピックは "​hello"​ としておきます。
 +
 +<​code>​
 +user1@plum:​~$ mosquitto_sub -d -t hello
 +Received CONNACK
 +Received SUBACK
 +Subscribed (mid: 1): 0
 +
 +</​code>​
 +
 +\\
 +
 +別のターミナルから、Subscribeされているトピック "​hello"​ に対して、メッセージを Publish してみます。
 +
 +<​code>​
 +user1@plum:​~$ mosquitto_pub -d -t hello -m "Hello World"
 +Received CONNACK
 +Sending PUBLISH (d0, q0, r0, m1, '​hello',​ ... (11 bytes))
 +user1@plum:​~$
 +</​code>​
 +
 +Subscribe している側にメッセージが送信されたのが確認できます。
 +
 +<​code>​
 +user1@plum:​~$ mosquitto_sub -d -t hello
 +Received CONNACK
 +Received SUBACK
 +Subscribed (mid: 1): 0
 +Received PUBLISH (d0, q0, r0, m0, '​hello',​ ... (11 bytes))
 +Hello World
 +
 +</​code>​
  
mae3xx_tips/setup_mosquitto/start.1397033125.txt.bz2 · 最終更新: 2014/04/09 17:45 by admin