MQTT

MQTTの調査

604 views

nodeJSでメッセージのやり取りをする場合

モジュールはのインストールは次のコマンドを実行する。

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()
  });

pythonでメッセージのやり取りする場合

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。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/

ツイッター

@darkimpact0626