首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将事件发布到MQTT时出现的主题错误

将事件发布到MQTT时出现的主题错误
EN

Stack Overflow用户
提问于 2016-02-15 03:01:06
回答 1查看 206关注 0票数 1

我使用的是来自ESP8266 NodeMCU和Arduino IDE的pubsub库。

https://github.com/knolleary/pubsubclient/tree/master/examples/mqtt_esp8266

我的设备已在IBM Bluemix IoT Foundation (IoTF)注册。

我使用的客户机名是

代码语言:javascript
复制
char* myclient = "d:ORGID:Devicetype:Deviceid"; 

其中orgid是我来自Bluemix的orgID,设备类型和id来自我在IoTF中创建和注册的设备。我要发布的主题是我代码中的这一行:

代码语言:javascript
复制
client.publish("iot-2/evt/status/fmt/json", msg);

在Node-RED中,我有一个IOT-in节点查看设备状态,并使用Bluemix服务进行身份验证。

当我让调试节点查看来自IoT-in节点的完整消息对象时,我看到了这个错误(注意:在这个调试输出中,我将我的orgid更改为ORGID ):

代码语言:javascript
复制
{
    "_msgid": "9f433f7b.60bcc",
    "deviceId": "InterConnect",
    "deviceType": "nodeMCU",
    "payload": {
        "Action": "Disconnect",
        "ClientAddr": "24.47.149.38",
        "ClientID": "d:ORGID:nodeMCU:InterConnect",
        "CloseCode": 276,
        "ConnectTime": "2016-02-14T18:32:19.328Z",
        "Port": 1883,
        "Protocol": "mqtt4-tcp",
        "ReadBytes": 111,
        "ReadMsg": 0,
        "Reason": "The topic is not valid.",
        "SecureConnection": false,
        "Time": "2016-02-14T18:32:19.397Z",
        "User": "use-token-auth",
        "WriteBytes": 4,
        "WriteMsg": 0
    },
    "topic": "iot-2/type/nodeMCU/id/InterConnect/mon"
}

我想知道我的主题是如何变成这里显示的内容的。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-02-16 05:51:22

这是因为我的代码订阅了"iot-2/evt/command_id/fmt/format_string“而不是"iot-2/cmd/command_id/fmt/format_string”--一旦我修复了这个问题,一切都很顺利。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35395837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档