我是否需要 运行 Mosquitto 才能与远程 mosquitto 代理进行交互
Do I need to run Mosquitto to interact with a remote mosquitto broker
我是 mqtt 的新手,想了解一些事情。
我需要从远程 mosquitto
代理获取(订阅)主题的消息。该服务的文档说我需要在我的服务器上 运行 一个 mosquitto
代理。
如果我理解正确,那么一个脚本使用 mqtt
gem 并设法使用如下方式连接:
MQTT::Client.connect(conn_opts) do |c|
# The block will be called when you messages arrive to the topic
c.get('test') do |topic, message|
puts "#{topic}: #{message}"
end
end
是经纪人吗?我需要在我的机器上安装 运行 mosquitto 还是只需要一个脚本和 mqtt
就可以了?
文档描述了体系结构并包括以下几行:
The 3rd party platform needs an MQTT broker installed that will allow
communication with the different boxes on our servers. The broker on our servers will
initiate the connection and provide the credentials to allow
bidirectional communication.
我想到的体系结构是一个预定的后台进程,使用 ruby-mqtt
,它将生成、连接到远程 mosquitto
服务器并在完成之前分批提取新消息。这听起来像是从远程 mosquitto
代理获取消息的合理方法吗?
我偷偷怀疑有些东西我没有得到...任何 help/direction 将不胜感激。谢谢!
不,您不需要本地 MQTT 服务器,您可以从 ruby 脚本直接连接到远程服务器。
通常会一直保持 MQTT 客户端 运行,而不仅仅是使用 cron 定期下载。尽管我认为这可行,但前提是您使用 QoS 1/2 并禁用干净会话,以便消息保留在远程服务器上。尽管名称如此,MQTT 并不是消息队列协议,它是一个 publish/subscribe 协议,因此远程服务器可能不允许您建立大量消息。
然而,可能需要一个本地 MQTT 服务器(例如 mosquitto):
* 您的本地 MQTT 服务器可以处理消息到磁盘的存储,直到 ruby 准备好
* 它允许多个本地客户端接收相同的消息,而远程服务器不必通过网络多次发送它
* 多个本地客户端可以相互发送消息,即使远程网络出现故障
另请注意,ruby-mqtt 尚未正确支持 QoS 1,也不支持消息持久化或自动重新连接,因此本地 mosquitto 实例可以为您解决其中一些问题.
我是 mqtt 的新手,想了解一些事情。
我需要从远程 mosquitto
代理获取(订阅)主题的消息。该服务的文档说我需要在我的服务器上 运行 一个 mosquitto
代理。
如果我理解正确,那么一个脚本使用 mqtt
gem 并设法使用如下方式连接:
MQTT::Client.connect(conn_opts) do |c|
# The block will be called when you messages arrive to the topic
c.get('test') do |topic, message|
puts "#{topic}: #{message}"
end
end
是经纪人吗?我需要在我的机器上安装 运行 mosquitto 还是只需要一个脚本和 mqtt
就可以了?
文档描述了体系结构并包括以下几行:
The 3rd party platform needs an MQTT broker installed that will allow communication with the different boxes on our servers. The broker on our servers will initiate the connection and provide the credentials to allow bidirectional communication.
我想到的体系结构是一个预定的后台进程,使用 ruby-mqtt
,它将生成、连接到远程 mosquitto
服务器并在完成之前分批提取新消息。这听起来像是从远程 mosquitto
代理获取消息的合理方法吗?
我偷偷怀疑有些东西我没有得到...任何 help/direction 将不胜感激。谢谢!
不,您不需要本地 MQTT 服务器,您可以从 ruby 脚本直接连接到远程服务器。
通常会一直保持 MQTT 客户端 运行,而不仅仅是使用 cron 定期下载。尽管我认为这可行,但前提是您使用 QoS 1/2 并禁用干净会话,以便消息保留在远程服务器上。尽管名称如此,MQTT 并不是消息队列协议,它是一个 publish/subscribe 协议,因此远程服务器可能不允许您建立大量消息。
然而,可能需要一个本地 MQTT 服务器(例如 mosquitto): * 您的本地 MQTT 服务器可以处理消息到磁盘的存储,直到 ruby 准备好 * 它允许多个本地客户端接收相同的消息,而远程服务器不必通过网络多次发送它 * 多个本地客户端可以相互发送消息,即使远程网络出现故障
另请注意,ruby-mqtt 尚未正确支持 QoS 1,也不支持消息持久化或自动重新连接,因此本地 mosquitto 实例可以为您解决其中一些问题.