Node.js の mqtt クライアントの例です。
Arch Linux で動作の確認をしました。
Node.js のバージョンは、v15.5.1 です。
ライブラリーのインストール
sudo npm install -g mqtt
publish.js
#! /usr/bin/node
// ---------------------------------------------------------------
// publish.js
//
// Dec/04/2017
//
// ---------------------------------------------------------------
console.error ("*** 開始 ***")
var mqtt = require('mqtt')
var client = mqtt.connect('mqtt://localhost')
const topic = 'topic_1'
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 ("*** 終了 ***")
})
// ---------------------------------------------------------------
実行コマンド
export NODE_PATH=/usr/lib/node_modules
./publish.js
subscribe.js
#! /usr/bin/node
// ---------------------------------------------------------------
// subscribe.js
//
// Dec/04/2017
//
// ---------------------------------------------------------------
console.error ("*** 開始 ***")
var mqtt = require('mqtt')
var client = mqtt.connect('mqtt://localhost')
client.on('connect', function () {
client.subscribe('topic_1')
})
client.on('message', function (topic, message) {
// message is Buffer
console.log(message.toString())
})
// ---------------------------------------------------------------
実行コマンド
export NODE_PATH=/usr/lib/node_modules
./subscribe.js
テストをするには、localhost で mosquitto を動かす必要があります。
$ sudo systemctl status mosquitto
● mosquitto.service - Mosquitto MQTT Broker daemon
Loaded: loaded (/usr/lib/systemd/system/mosquitto.service; disabled; vendo>
Active: active (running) since Tue 2021-01-12 15:54:42 JST; 35min ago
Main PID: 10924 (mosquitto)