4

我正在开发物联网设备。我在树莓派 3 中安装了 Eclipse Kura 以将其用作网关。我想使用 Kura 或直接使用树莓派向 Kapua 服务器(安装在同一网络中)发布消息。这两种方法我都试过了。

1-使用库拉

我已按照 GitHub Kura Kapua 连接教程#780 上的说明进行操作。完成这些步骤后,我可以建立 Kura Kapua 连接但无法发送数据,Example.publisher 包也安装在 Kura 中。我想创建一个主题并发布有关该主题的数据。

2- 使用 MQTT-Client 库

我已经在树莓派中安装了 MQTT-Client 库,并使用以下命令发布和订阅数据。

发布:

sudo mosquitto_pub -h "broker-URL" -p "Port" -t "topic" -m "message" -u "user-name"-P "user-pass" -i "client-id"

认购 :

sudo mosquitto_pub -h "broker-URL" -p "Port" -t "topic" -u "user-name"-P "user-pass" -i "client-id"

这具有相同的行为,它也建立了连接,但无法创建主题和发布数据。当我对 localhost 执行相同操作时,它确实发送了消息。我正在使用两个不同的终端发布和订阅。

是否有任何方法或示例可以让我实际使用 Kura 或 MQTT 发送一些数据并在另一端观察。

4

1 回答 1

0

基本知识

正确的连接参数(如果您按照您提到的教程进行操作)是:

-h localhost
-p 1883
-u kapua-broker
-P kapua-password
(not sure the doublequote is required)

Kapua 使用特定的主题格式来授予对主题的访问控制。格式的语义是:

{account-name}/{client-id/{semantic-topic}

根据您的权限,您可以访问不同级别的主题。

默认用户kapua-broker仅允许在以下条件下进行连接、发布和订阅:

{kapua-sys}/{connection-client-id}/#

您需要更多权限才能订阅其他client-id主题。
执行此操作所需的权限是:

data:view

你的例子

首先,您似乎正在使用已发布来订阅。这是你的命令。

sudo mosquitto_pub -h "broker-URL" -p "Port" -t "topic" -u "user-name"-P "user-pass" -i "client-id"

其次,凭据、主机、用户名、密码和主题都是错误的(除非您在发布到 SO 之前“隐藏”了它们)。

要使您的测试工作,您需要使用以下命令,

订阅

mosquitto_sub -h "localhost" -p "1883" -t "kapua-sys/mosquitto_pub/my/test/topic" -u "kapua-sys" -P "kapua-password" -i "mosquitto_sub"

发布

mosquitto_pub -h "localhost" -p "1883" -t "kapua-sys/mosquitto_pub/my/test/topic" -m "My test message" -u "kapua-broker" -P "kapua-password" -i "mosquitto_pub"

对于 Kura 示例发布者,由于缺乏信息,我不知道问题出在哪里。我假设您正在发布或订阅由于主题的写/读权限而无法访问的主题。


希望对您有所帮助!:)

于 2018-06-22T09:25:18.210 回答