使用kura或MQTT将消息发布到kapua

问题描述 投票:4回答:1

我正在研究物联网设备。我在raspberry pi 3中安装了Eclipse Kura,将其用作网关。我想使用Kura或直接使用raspberry pi向Kapua服务器(安装在同一网络中)发布消息。我尝试了两种方法。

1-使用库拉

我按照GitHub Kura Kapua连接tutorial#780的指示进行操作。按照这些步骤后,我能够建立Kura Kapua连接但无法发送数据,还在Kura中安装了Example.publisher包。我想创建一个主题并发布有关该主题的数据。

2-使用MQTT-Client库

我在raspberry pi中安装了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进行观察。

eclipse raspberry-pi3 kura kapua
1个回答
0
投票

General knowledge

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

-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

Your example

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

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示例发布者,由于缺乏信息,我不知道问题出在哪里。我假设您正在发布或订阅由于主题的写入/读取权限而无法访问的主题。


希望对你有所帮助! :)

© www.soinside.com 2019 - 2024. All rights reserved.