JavaScript (Node.js) での接続
ブローカーに設定されたトークン認証モードで MQTT.js を使用します。
以下は、ブローカーに設定された TOKEN 認証モードで MQTT.js ↗ を使用した例です。この例では、システムに Node.js ↗ v16 以上がインストールされていることを前提としています。
例を実行する前に、以下の環境変数を設定してください:
BROKER_URI(例:mqtts://YOUR-BROKER.YOUR-NAMESPACE.cloudflarepubsub.com)BROKER_TOKENに 有効な認証トークン を設定BROKER_TOPICに公開するトピック - 例えば、hello/world
例を実行する前に、MQTT ライブラリをインストールしてください:
# 前提条件: MQTT.js をインストールnpm install mqtt --save以下の例を example.js としてコピーし、node example.js で実行します。
const mqtt = require("mqtt");
// MQTT ブローカーの URI を指定: mqtts://<broker name>.<namespace>.cloudflarepubsub.comconst 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;}