MQTTの調査
861 views
モジュールはのインストールは次のコマンドを実行する。
npm install mqtt
APIのマニュアルは以下。
https://www.npmjs.com/package/mqtt#example
パブリッシャーのサンプルコードを以下に記す。
console.error ("*** 開始 ***");
var mqtt = require('mqtt');
var client = mqtt.connect('mqtt://localhost');
const topic = 'orz';
client.on('connect', function () {
const today = new Date ();
var ddx = (1900 + today.getYear ()) + "-" + (today.getMonth () +1);
ddx += "-" + today.getDate () + " " + today.getHours();
ddx += ":" + today.getMinutes () + ":" + today.getSeconds();
client.publish(topic, ddx);
console.log(ddx);
client.publish(topic, 'Good Afternoon mqtt');
client.publish(topic, 'こんにちは');
client.end();
console.error ("*** 終了 ***");
});
サブスクライバーのサンプルコードを以下に記す。
console.error ("*** 開始 ***");
var mqtt = require('mqtt');
var client = mqtt.connect('mqtt://localhost');
const topic = 'orz';
client.on('connect', function () {
client.subscribe(topic, function (err) {
console.log("メッセージが来た");
if (!err) {
//client.publish(topic, 'Hello mqtt')
}
})
});
client.on('message', function (topic, message) {
// message is Buffer
console.log(message.toString())
//client.end()
});
https://qiita.com/hsgucci/items/6461d8555ea1245ef6c2を参照。
念のため、使う部分だけコピーしたコードが以下。
# coding:UTF-8
import paho.mqtt.client as mqtt
# ブローカーに接続できたときの処理
def on_connect(client, userdata, flag, rc):
print("Connected with result code " + str(rc)) # 接続できた旨表示
client.subscribe("orz") # subするトピックを設定
# ブローカーが切断したときの処理
def on_disconnect(client, userdata, flag, rc):
if rc != 0:
print("Unexpected disconnection.")
# メッセージが届いたときの処理
def on_message(client, userdata, msg):
# msg.topicにトピック名が,msg.payloadに届いたデータ本体が入っている
print("Received message '" + str(msg.payload) + "' on topic '" + msg.topic + "' with QoS " + str(msg.qos))
# MQTTの接続設定
client = mqtt.Client() # クラスのインスタンス(実体)の作成
client.on_connect = on_connect # 接続時のコールバック関数を登録
client.on_disconnect = on_disconnect # 切断時のコールバックを登録
client.on_message = on_message # メッセージ到着時のコールバック
client.connect("localhost", 1883, 60) # 接続先は自分自身
client.loop_forever() # 永久ループして待ち続ける
Page 3 of 5.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/