コンテンツにスキップ

JavaScript (Node.js) での接続

ブローカーに設定されたトークン認証モードで MQTT.js を使用します。

以下は、ブローカーに設定された TOKEN 認証モードで MQTT.js を使用した例です。この例では、システムに Node.js v16 以上がインストールされていることを前提としています。

例を実行する前に、以下の環境変数を設定してください:

  1. BROKER_URI (例: mqtts://YOUR-BROKER.YOUR-NAMESPACE.cloudflarepubsub.com)
  2. BROKER_TOKEN有効な認証トークン を設定
  3. BROKER_TOPIC に公開するトピック - 例えば、hello/world

例を実行する前に、MQTT ライブラリをインストールしてください:

Terminal window
# 前提条件: MQTT.js をインストール
npm install mqtt --save

以下の例を example.js としてコピーし、node example.js で実行します。

const mqtt = require("mqtt");
// MQTT ブローカーの URI を指定: mqtts://<broker name>.<namespace>.cloudflarepubsub.com
const uri = check_env(process.env.BROKER_URI);
// 任意のユーザー名と /brokers/YOUR_BROKER/credentials エンドポイントからのトークン
// トークンは Pub/Sub API によって発行された base64 エンコードされた JWT である必要があります
const username = "anything";
const password = check_env(process.env.BROKER_TOKEN);
// 購読および公開するトピック名を指定
let topic = check_env(process.env.BROKER_TOPIC);
// MQTT クライアントを設定して作成
const client = mqtt.connect(uri, {
protocolVersion: 5,
port: 8883,
clean: true,
connectTimeout: 2000, // 2 秒
clientId: "",
username,
password,
});
// エラーを発生させて終了
client.on("error", function (err) {
console.log(`⚠️ エラー: ${err}`);
client.end();
process.exit();
});
// ブローカーに接続
client.on("connect", function () {
console.log(`🌎 ${process.env.BROKER_URI} に接続しました!`);
// トピックに購読
client.subscribe(topic, function (err) {
if (!err) {
console.log(`✅ ${topic} に購読しました`);
// メッセージを公開!
client.publish(topic, "私の最初の MQTT メッセージ");
}
});
});
// メッセージを待機開始
client.on("message", async function (topic, message) {
console.log(`メッセージを受信しました: ${message.toString()}`);
// さようなら!
client.end();
process.exit();
});
// 変数を返すかエラーをスロー
function check_env(env) {
if (!env) {
throw "BROKER_URI、BROKER_TOKEN、および BROKER_TOPIC を設定する必要があります。";
}
return env;
}