问题标签 [mosca]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 如何将我们的回调函数连接到 mosca 验证方法?
在上面的代码中,我在此 mqtt 客户端的选项中提供用户名和密码。
在authenticate
函数的服务器端,我需要在客户端连接一个回调,该回调在那里被调用为callback(true)
.
docker - 通过 Dockers 中的 Nginx 将 mqtt.js 客户端连接到 Mosca Broker(相同的 Docker-compose)
我有:
- 1 MongoDB
- 2 Mqtt Mosca 经纪人
- 2 NodeJS 应用程序都与 mqtt.js cient
- 1个
Nginx loadbalance 和 proxy_pass 都将 http 和 mqtt 分别传递给 NodeJS 应用程序和 Mqtt Mosca Brokers,
所以我有:
mqtt Sensors -> nginx -> Mqtt Mosca Brokers“流”正常工作
浏览器 -> nginx -> NodeJS App“流程正常”
我无法做的是让 NodeJS 应用程序(mqtt.js 客户端部分)通过 nginx 连接到 Mqtt Mosca Brokers,类似于:
NodeJS (mqtt.js 客户端) -> nginx -> Mqtt Mosca Broker。
奇怪的是,如果我尝试:
NodeJS(mqtt.js 客户端)-> Mqtt Mosca Broker 流程正常工作
我有以下配置:
码头工人-compose.yml
nginx.conf(摘录)
基本上,如果在我使用的 NodeJS 应用程序中:
它有效,但如果我尝试:
没有任何效果,有人可以帮忙吗?
node.js - 如何将相同的消息广播到 Mosca 中的多个接口
我有 2 个接口,一个 mqtt 和一个用于 websocket。我注意到如果我有后端,mqtt 不会路由到 websocket。
我创建了 mosca 服务器,如下所示:
我需要做什么才能在所有 3:mqtt、websocket 和后端之间进行路由?
谢谢!
node.js - 绑定 Mosca 监听 IP 地址?
有没有办法专门监听特定 IP 地址/主机名上的传入网络连接?最好通过在代码中动态传递 ip 地址/主机名,而不是编辑配置文件。
在 Mosca 的文档中找不到对此的参考 - http://www.mosca.io/docs/这就是我发布的原因。
谢谢你的时间。
node.js - 正在尝试 MQTT 连接...失败,rc=-2 5 秒后重试
我正在尝试与我的电脑(node.js、express、Mosca)和 Esp8266 上的本地 MQTT 服务器建立 MQTT 通信。
esp8286 没有连接到我的服务器,错误是
正在尝试 MQTT 连接...失败,rc=-2 5 秒后重试
无法连接到经纪人。
这是节点js代码:
这是 Esp8266 代码
node.js - TypeError: Client is not a constructor - 最新版本的 kafka-node 出错
Mosca 给出了这个错误:
环境
- 节点版本:v10.9.0
- Kafka节点版本:最新
- Mosca 版本:最新
我试过的
我打开/home/x/Desktop/broker/node_modules/mosca/node_modules/ascoltatori/lib/kafka_ascoltatore.js
并查看下面的行后发现问题与 kafka-node 版本有关:
当我删除this._opts.kafka
时,它开始正常工作。然后我打印了两个我发现新版本中没有客户端构造函数。这是我的打印结果:
this._opts.kafka (kafka-node v4.0.1 latest)
返回没有客户端的 HighLevelProducer,另一方面 require("kafka-node") (v0.5.9) 返回 HighLevelConsumer。
代码:
如上所述,我可以让 Kafka 与旧版本一起使用,但我认为这只是一个快速修复,所以我希望有人能引导我找到正确的解决方案。
node.js - npm install mosca fail 错误:`make` 失败,退出代码:2
当我尝试 npm install mosca 时,出现错误。
我尝试了不同的方法,例如删除 .node-gyp 和 .npmrc,但它不起作用。
节点:v8.15.0
npm:6.4.1
ssl - 如何在没有证书的客户端的情况下为 mqtts 配置 Mosca?
我有一个在节点实例上运行的 Mosca MQTT 代理,我想用 SSL/TLS(MQTTs 协议)加密所有传入的通信,但客户端不必将任何证书链接到连接(我猜它与 self -签名证书)就像 https 一样。我希望我的所有客户端只使用指定 MQTTs 协议的凭据进行连接,并且可以加密通信。我之前正在使用 Amazon MQ,它就是这样工作的,所以我想要同样的。
我不知道如何正确配置 Mosca 来做到这一点,我不知道我必须使用什么样的证书。
我在 ec2 (ubuntu 18) 上运行所有东西,我的网络和防火墙对 1883 和 8883 开放。我的密钥和证书位于我的项目的根目录,其中守护程序以良好的权利和所有权运行。我知道我的实例可以正确访问它们。
我的服务器正在端口 1883 上运行并使用简单的 mqtt,但是当我尝试使用端口 8883 上的客户端连接 ssl/tls 时,指定服务器使用自签名证书(我尝试使用 MQTT.fx)它失败说:“无法找到请求目标的有效认证路径”。
我无法解决这个问题,我认为客户端无法“接受”或“验证”提供的证书。也许我向 Mosca 提供了错误的密钥或证书,但每个生成的 openssl 或 certbot 只有一个。也许我创建错了,但我遵循了很多关于同一主题的教程,比如这个
我需要办什么证书?
他们还有什么关系吗?
谢谢你。
javascript - 如何在“已发布”回调中访问客户端对象?
我使用 Mosca 作为带有蚊子后端的嵌入式 MQTT 代理。我主要使用 Mosca 作为一种身份验证机制,它可以读取 jwt 令牌并从中提取一些值。我创建了自己的授权者来读取 mqtt 密码字段中的 JWT 令牌并对其进行解码/验证。解码后,我将解码后的字段添加到客户端对象,如下所示
我想访问回调decoded_token
中的值,published
如下所示
不知何故,上面的代码无法按预期工作。我收到以下错误:
TypeError:无法读取未定义的属性“decoded_token”
而如果不是console.log(client.decoded_token)
我使用console.log(client)
,它可以工作,我可以看到decoded_token
客户端对象中的值。
我有两个问题。
- 为什么上面的代码不起作用?
- 当我在客户端对象中存储一个值时,该值是传递给客户端(传感器),它可以随后续请求一起发送还是仅存储在本地内存中?
我是 MQTT 的新手,所以如果问题太天真,请原谅:)
typescript - 单元测试后关闭 Mosca 代理会引发错误
我在 Node.js 上使用 Mosca 和 TypeScript,并编写了一个自定义代理来满足我的需求。
当我单独测试我的方法(使用 Jest UT 库)时,一切似乎都运行良好,直到测试结束,我收到以下错误:
这是我的 broker.ts 的样子:
这是我的 broker.spec.ts 测试文件:
如您所见,我正在尝试new Broker
使用afterAll
语法关闭我在开头创建的 MQTT 服务器。但是,由于某种原因,我收到此错误。
值得注意的是,我尝试broker.server.close()
在实际测试中使用,每当客户端连接到我的代理时,我都会调用该方法,并且它运行良好,当我要求服务器关闭时,它正在关闭。
我想知道我在这里做错了什么。该错误使我认为服务器已经关闭,但我不明白如果我不告诉它停止为什么会这样。