0

Mosca MQTT サーバーを既存の Express アプリケーションに追加しようとしています。
接続したばかりのクライアントにウェルカム メッセージだけを送信したいのですが、うまくいきません。

const mqttServ = new mosca.Server({})
mqttServ.attachHttpServer(server)

var message = {
  topic: 'helloworld',
  payload: 'abcde', // or a Buffer
  qos: 0, // 0, 1, or 2
  retain: false // or true
}

mqttServ.on('clientConnected', (client) => {
  mqttServ.publish(message, client, () => {
    console.log('message sent')
  })
})

Web ページでクライアントを '/hello/world' トピックに登録しましたが、何も得られません。

var client = mqtt.connect()

client.subscribe('helloworld')

client.on('message', (topic, payload) => {
  console.log([topic, payload].join(": "))
  client.end()
})

-- 更新 --
パブリッシュ呼び出しでクライアントを削除すると、メッセージは Web ページに届きますが、これは私がしようとしていることではありません。

4

1 に答える 1

0

サブスクライブイベントの後にメッセージを公開するとうまくいきました

mqttServ.on('subscribed', (topic, client) => {
  mqttServ.publish(message, client)
})
于 2016-05-21T19:46:19.647 に答える