sangoの使い方 - Python編

Pythonからsangoを使う方法について説明します。

Rubyでsangoを使うには以下の手順で行います。

  1. pipでライブラリをインストール

  2. クライアントの実装

確認した環境

  • python 2.7.8

  • paho-mqtt 1.0

1. pipでライブラリをインストール

pythonでは paho-mqtt を使います。なお、 mosquitto のライブラリもありますが、すでに開発が終了していますので、ご注意ください。

pip install paho-mqtt

2. クライアントの実装

mqtt.Client() でMQTTクライアントのインスタンスを作成し、connectを実 行すれば接続します。デフォルトではMQTT 3.1で接続するようになっています ので、 protocol という引数を与えて3.1.1で接続するようにします。

connect後は get でSubscribeを行ったり、 publish でPublishを行っ たりできます。

Connect

Connect部分はPub/Subともに共通です。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import paho.mqtt.client as mqtt

MQTTHOST = "free.mqtt.shiguredo.jp"
USERNAME = "example@github"
PASSWORD = "password"

# 3.1.1用のClientを作成します
client = mqtt.Client(protocol=mqtt.MQTTv311)
# ユーザー名とパスワードを設定します
client.username_pw_set(USERNAME, PASSWORD)

# 接続します
client.connect(MQTTHOST)

Subscribe

TOPIC = "shirou@github/a/b"
# Subscribeします
client.subscribe(TOPIC)

# メッセージを待ち受けるループに入ります
client.loop_forever()

Publish

TOPIC = "shirou@github/a/b"
# Publishします
client.publish(TOPIC, "message from python")

# そのままだとすぐにプロセスが終了してしまいますので、Publishし終わるまで待ちます
import time
time.sleep(0.05)

参照

pypi

https://pypi.python.org/pypi/paho-mqtt

Comments

comments powered by Disqus