如何在 Mosquitto MQTT 中使用客户端 ID?
How to use client id in Mosquitto MQTT?
我是 Mosquitto 的新手。我在 Ubuntu 中安装了 Mosquitto 和 Mosquitto 客户端。我正在尝试使用 client-id 订阅也使用 client-id 发布,请查看我在控制台中的命令 运行,但不幸的是,订阅者没有收到消息。
订阅
mosquitto_sub -h localhost -t temp/city1 -c -q 2 --id client-one
发布
mosquitto_pub -h localhost -t temp/city1 -m "32 Celsius" -q 2 --id client-one
但是如果我在没有客户端 ID 的情况下发布消息,订阅者正在接收消息,那么请帮我看看我错在哪里?
如评论中所述,clientIds 就是这样,它们是连接到代理的每个客户端的唯一标识符。
ClientIds 需要完全唯一,如果第二个客户端尝试连接已连接的 clientid,代理必须断开第一个客户端以允许第二个客户端连接(这是由规范规定的)。在您给出的示例中,订阅者将在收到第二个发布的消息之前断开连接。
消息发布到主题,客户可以订阅这些主题(或带通配符的主题模式)
因此,使用 mosquitto 命令行工具,您可以执行以下操作:
mosquitto_sub -v -t 'foo/bar'
这将订阅主题 foo/bar
并打印出主题,然后在有消息发布到该主题时显示消息。要发布包含字符串 testing
的消息,您可以使用:
mosquitto_pub -t 'foo/bar' -m 'testing'
如果在命令行上提供 none,mosquitto 命令行工具将生成随机的 clientids。
我是 Mosquitto 的新手。我在 Ubuntu 中安装了 Mosquitto 和 Mosquitto 客户端。我正在尝试使用 client-id 订阅也使用 client-id 发布,请查看我在控制台中的命令 运行,但不幸的是,订阅者没有收到消息。
订阅
mosquitto_sub -h localhost -t temp/city1 -c -q 2 --id client-one
发布
mosquitto_pub -h localhost -t temp/city1 -m "32 Celsius" -q 2 --id client-one
但是如果我在没有客户端 ID 的情况下发布消息,订阅者正在接收消息,那么请帮我看看我错在哪里?
如评论中所述,clientIds 就是这样,它们是连接到代理的每个客户端的唯一标识符。
ClientIds 需要完全唯一,如果第二个客户端尝试连接已连接的 clientid,代理必须断开第一个客户端以允许第二个客户端连接(这是由规范规定的)。在您给出的示例中,订阅者将在收到第二个发布的消息之前断开连接。
消息发布到主题,客户可以订阅这些主题(或带通配符的主题模式)
因此,使用 mosquitto 命令行工具,您可以执行以下操作:
mosquitto_sub -v -t 'foo/bar'
这将订阅主题 foo/bar
并打印出主题,然后在有消息发布到该主题时显示消息。要发布包含字符串 testing
的消息,您可以使用:
mosquitto_pub -t 'foo/bar' -m 'testing'
如果在命令行上提供 none,mosquitto 命令行工具将生成随机的 clientids。