问题标签 [ruby-mqtt]
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.
ruby - 我是否需要运行 Mosquitto 才能与远程 mosquitto 代理交互
我是 mqtt 的新手,想了解一些事情。
我需要从远程mosquitto
代理获取(订阅)主题的消息。该服务的文档说我需要mosquitto
在我的服务器上运行一个代理。
如果我理解正确,那么一个使用mqtt
gem 并设法使用类似这样的东西进行连接的脚本:
是经纪人吗?我需要在我的机器上运行 mosquitto 还是只需要一个脚本就可以了mqtt
?
该文档描述了架构并包括以下几行:
第 3 方平台需要安装 MQTT 代理,以允许与我们服务器上的不同盒子进行通信。我们服务器上的代理将启动连接并提供凭据以允许双向通信。
我想到的架构是一个预定的后台进程,使用ruby-mqtt
, 它将生成、连接远程mosquitto
服务器并在完成之前批量拉下新消息。mosquitto
这听起来像是从远程代理获取消息的合理方法吗?
我有一个偷偷摸摸的怀疑有什么我没有得到......任何帮助/方向将不胜感激。谢谢!
mqtt - 验证本地 mosquitto MQTT 代理是否已桥接到 test.mosquitto.org
我有一个使用以下配置运行的本地(OSX 11)蚊子代理(1.4.7):
我在这里得到了 conf 设置表:bridge local mosquitto to cloud broker(谢谢)
我现在有 3 个终端。
答:直接使用 ruby 脚本订阅了 test.mosquitto.org 和ruby-mqtt
.
B : 订阅本地代理mosquitto_sub -t in_topic
C:使用此命令发布:mosquitto_pub -h test.mosquitto.org -t in_topic -m "hello world1"
现在,当我这样做时,我会在A和B中得到响应,这让我认为我的桥接正在工作。但是,如果我放弃,-h test.mosquitto.org
我不会收到来自A的消息。因此,如果我包含该-h
选项,消息只会发送到该代理 (test.mosquitto.org)。
另一方面,如果我停止本地 mosquitto 代理,然后运行包含-h
选项的相同命令,则A仍会收到消息,而B不会。B实际上甚至没有启动,因为连接被拒绝,因为本地代理没有运行。
所以,我的问题是,这种配置是否真的确定了经纪人正在桥接?我不确定。
更新:
正如hardillb指出的那样,我的错误是我用来发布的主题未配置为发布到其他代理。当我将 conf 更新为时,topic in_topic out 0
我成功地直接从 test.mosquitto.org 代理获取了消息,而不包括-h test.mosquitto.org
换句话说。基于配置传播的消息。
我错了的文档可以在这里的桥接部分下找到:http: //mosquitto.org/man/mosquitto-conf-5.html
javascript - MQTT 服务器到客户端的通信
我想使用 mosca 在服务器和客户端之间进行通信。在第一种情况下,我从客户端订阅和发布数据。并将该数据接收到服务器。但我再次遇到一些问题,我想从服务器发布数据并从同一个客户端接收该数据。
示例:从前端向服务器发送相同的数据。收到这些数据后,我想将这些数据存储在数据库中。保存数据后,我想使用 Mosca(在 Javascript 中)将一些响应(数据)发送到同一个客户端。
感谢您提供答案。
ruby - 发布确认 - MQTT
如何识别publish
to atopic
是否成功。有什么方法可以在发布到某个主题时得到确认。
如果publish
客户端(发布者/订阅者)之间的连接丢失如何处理。
我不希望订阅者在收到 pay_load 后向发布端的特定主题发送 ack。
这是我的红宝石代码:
假设,我已经创建了客户端(@client)
并在两侧进行了配置。
发布
订阅
ruby-on-rails - 在 AWS EC2 Ubuntu + Ruby on Rails 上使用 mosquitto 设置 Paho Javascript 客户端 (MQTT)
我一直在尝试使用端口 1883 在我的 AWS EC2 服务器上设置 MQTT 代理。到目前为止,它可以与ruby-mqtt gem一起使用,但我无法使用 Paho Javascript Client 为网站设置它。
到目前为止我做了什么:
蚊子
在我的 AWS EC2 实例上安装了 mosquitto,它正在运行并在端口 1883 上侦听。我使用命令在本地订阅了一个主题
AWS EC2 安全组
允许通过端口 1883 的流量(在 tcp 协议下)
Ruby on Rails
安装了 ruby-mqtt gem,并通过在 rails 控制台(开发环境)中运行以下代码来测试 mqtt 是否正常工作
该消息出现在mosquitto_sub
正在运行的终端中。
Nginx
所有这一切都是在没有对 Nginx 配置文件进行任何配置的情况下完成的。
帕霍客户
因此,我在本地计算机上启动了本地 Rails 服务器,并在我的一个 html 视图上运行示例 javascript 片段。
但我无法连接。我在 chrome 开发者控制台中遇到的错误是:
我不确定这里有什么问题。非常感谢任何帮助!提前致谢!
ruby-on-rails - 如何在 Ruby On Rails 应用程序中配置 Mqtt
我正在将 MQTT 用于使用传感器和时间序列数据库的应用程序。我已经编写了一些正常工作的代码。我将连接建立放在调度程序中。当服务器初始化时,它会自动调用一个方法,我在其中编写了一些代码来连接到 MQTT。但是,现在我认为这并不好。请帮助解决这个问题。我如何在 Rails 应用程序中配置 MQTT 连接,而不是在调度程序中编写。
mqtt - windows 8.1 mqttlens自动放大的解决方案
我已经mqttlens
从google chorme apps
.
它在几周内运行良好,但最近当我启动它时它出现在缩放中。
我该如何解决?
.
ruby-on-rails - Ruby:QOS=1 的 paho-mqtt 会自动为我重新发送(重新发布)未确认的消息吗?
我paho-mqtt
在红宝石中使用宝石。
我想知道如果由于某种原因在客户端未收到 PUBACK,gem 是否会自动将消息重新发送(重新发布)到 MQTT 代理,还是我必须手动执行?QOS=1
ex(这是我以 QOS=1 发布,没有做任何其他事情):