首页 文章

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

提问于
浏览
3

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

1- Using Kura

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

2- Using MQTT-Client library

我在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"

这具有相同的行为,它还 Build 连接但无法创建主题并发布数据 . 当我为localhost执行相同操作时,它会发送消息 . 我正在使用两个不同的终端来发布和订阅 .

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

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之前“隐藏”它们) .

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

    Subscribe

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

    Publish

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


    希望对你有所帮助! :)

相关问题