2014-12-25 2 views
0

У меня есть ниже код ->MQTT Js Последняя воля Сообщение не готовится к публикации

var last_will = new Paho.MQTT.Message("last message"); 
last_will.destinationName = "Bridge123"; 
client = new Paho.MQTT.Client("broker.mqttdashboard.com", Number("8000"), "AX123"); 
client.onConnectionLost = onConnectionLost; 
client.onMessageArrived = onMessageArrived; 
client.connect({onSuccess:onConnect} , {willMessage:last_will}); 

Когда я отключить клиент я ожидал последнее сообщение будет отправкой на тему я создал .. Я использую Pāho 's mqtt version -3.1 .. Websockets создаются отлично, но я не вижу последнего сообщения ...

Может ли кто-нибудь здесь поехать?

Добавление большего изображение:

У меня есть Python скрипт тока р сбор вкл/выкл состояния устройства ВГД в локальной среде и публикации на тему «IOT1» над MQTT. Я не хочу, чтобы скрипт python всегда работал, чтобы получить статус с устройства IOT, поскольку он перегружает устройство. Чтобы решить эту проблему, мне нужно найти активных клиентов для темы «IOT1», чтобы я запускал или приостанавливал запросы отправки потоков на устройство IOT в локальной среде. Есть ли способ, кроме последнего сообщения, знать об этом?

ответ

1

Сообщения Last Will and Testament публикуются только в том случае, если клиент не отключается.

Если вы закрываете соединение изящно, оно не будет отправлено.

Только тогда, когда сервер не сможет получить сообщение или пакет ping в течение периода времени, сервер отправит сообщение.

+0

как это сделать в коде? –

0

willMessage должно быть свойством первого объекта. См. Ниже фрагмент кода.

client.connect({onSuccess:onConnect, willMessage:last_will});