щас объясню примерно как мне приходится извращаться:
я подписываюсь на топик /devices/+/controls/+/meta/type
потом подписываюсь на /tmp/<random>
потом публикую в /tmp/<random> значение loaded3 (цифра из головы)
далее, мне приходит инфа об устройствах, но не вся, а поэтапно (это самая жесть) а после нее возвращается мой loaded3, который я уменьшаю на единицу и отправляю обратно, и так до тех пор пока не дойдет до нуля
но иногда это 2 а иногда 3 раза, иногда 1
и когда доходит до нуля, значит устройства загружены
а зачем таймер я не понял, сколько всего устройств?
я вот так делаю
client.on('connect', function () {
client.subscribe(['/devices/+/meta/name', '/devices/+/controls/+/meta/+', '/devices/+/controls/+', '/tmp/items_list'], function (err) {
if (!err) {
client.publish('/tmp/items_list', 'end_reading_items_list')
} else {
RED.log.error("wirenboard: error code #0023: "+err);
}
})
});
подписываюсь на все топики и на /tmp и сразу туда шлю сообщение, потом жду пока оно придет