首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >nodejs mqttjs缺少协议错误

nodejs mqttjs缺少协议错误
EN

Stack Overflow用户
提问于 2018-07-24 22:02:16
回答 1查看 5.5K关注 0票数 3

我试图在nodejs中获得一个mqttjs的工作示例。当我试图在Windows10cmd提示符中使用命令main.js执行node main.js文件时,我收到了这个错误:

错误:

代码语言:javascript
运行
复制
C:\Users\Rich\Documents\Code\nodejs\onoff\node_modules\mqtt\lib\connect\index.js:64
      throw new Error('Missing protocol')
      ^

Error: Missing protocol
    at Object.connect (C:\Users\Rich\Documents\Code\nodejs\onoff\node_modules\mqtt\lib\connect\index.js:64:13)
    at Object.<anonymous> (C:\Users\Rich\Documents\Code\nodejs\onoff\main.js:2:20)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:188:16)
    at bootstrap_node.js:609:3

代码:

代码语言:javascript
运行
复制
var mqtt = require('mqtt');
var client  = mqtt.connect('192.168.0.22');

client.on('connect', function () {
  client.subscribe('mydevice')
  client.publish('presence', 'Hello mqtt')
})

client.on('message', function (topic, message) {
  // message is Buffer
  console.log(message.toString())
  client.end()
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-24 22:17:32

这是因为(由于错误状态),您忽略了需要传递给connect()方法的URI中的协议。

您已经传递了一个原始IP地址,但是它需要是一个URI,包括一个协议和一个主机。

代码语言:javascript
运行
复制
var client  = mqtt.connect('mqtt://192.168.0.22')

在github和npm上的包中包含的README.md示例中都显示了这一点。

API文档也对此进行了描述:

mqtt.connect(网址,选项) 连接到指定的url和选项指定的代理并返回客户端。 URL可以位于以下协议上:“mqtt”、“mqtts”、“tcp”、“tls”、“ws”、“wss”。URL也可以是URL.parse()返回的对象,在这种情况下,两个对象合并,即可以通过URL和connect选项传递单个对象。

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

https://stackoverflow.com/questions/51508141

复制
相关文章

相似问题

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