我正在研究物联网设备。我在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进行观察。
正确的连接参数(如果您按照您提到的教程)是:
-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示例发布者,由于缺乏信息,我不知道问题出在哪里。我假设您正在发布或订阅由于主题的写入/读取权限而无法访问的主题。
希望对你有所帮助! :)