Клиент ibmiotf не публикуется при одновременном использовании mqtt.js

Я работаю над проектом с несколькими брокерами, первый из них - IBM IoT Watson, а второй - мой брокер.

Я пытаюсь подключиться к ним обоим, прослушать изменения у моего брокера и опубликовать их в IBM Watson IOT.

Я использую nodejs ibmiotf и mqtt.js,

вот код:

const mqtt = require('mqtt');
const Client = require("ibmiotf");
const appClientConfig = require('../config').watsonIoTConfigs;
const rp = require('request-promise');
let appClient = new Client.IotfApplication(appClientConfig);
appClient.connect();

let myClient  = new mqtt.connect('tcp://myserver', {
    clientId: 'id222s2',
    username: 'username',
    password: 'password',
    port: 221112,
    will: {
        topic: 'server_disconnected',
        payload: "Server disconnected!, please call technical support",
        qos: 2
    }
});

appClient.on("connect", () => {
    console.log('ibmiot connected');
    appClient.subscribeToDeviceStatus();
    appClient.subscribeToDeviceEvents();
});

myClient.on('message', function (topic, message) {
  appClient.publish("topic1", "json", 'something') // here the ibmiotf disconnect
}

тогда я получил эту ошибку, когда он пытается опубликовать:

[BaseClient:connect] Iotfclient is offline. Retrying connection

И после этого он никогда не подключается и дает мне:

Error : [ApplicationClient:publish] Client is not connected

в чем причина этого?

1 ответ

Похоже, ваш клиент Watson IoT Platform не может подключиться - обычно это происходит, если вы неправильно настроили файл конфигурации (например, неверный ключ / токен API). Готовы ли вы поделиться файлом конфигурации - просто запутайте все пароли / токены - и мы сможем найти очевидные проблемы с ним.

Другие вопросы по тегам