我正在与多个经纪人合作一个项目,第一个是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
这背后的原因是什么?
答案 0 :(得分:0)
听起来您的Watson IoT Platform客户端无法连接-通常是在配置文件配置错误(例如,错误的API密钥/令牌)时发生的。您是否乐意共享配置文件-只需混淆所有密码/令牌-我们就可以寻找明显的问题。