0

我使用 WSO2 Message Broker 创建了一个示例发布和订阅模型项目。

import threading
import paho.mqtt.client as mqtt

def publish_1(client,topic):
    message="on"
    print("publish data")
    client.publish(topic,message)
    publish_1(client,topic)


broker="localhost"
topic_pub='/temperature123'
topic_sub='$SYS/#'

def on_connect(client, userdata, rc):
    print("Connected with result code "+str(rc))
    client.subscribe(topic_sub)


def on_message(client, userdata, msg):
    print(msg.topic+" "+str(msg.payload))

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message

client.connect(broker, 1883, 60)
thread1=threading.Thread(target=publish_1,args=(client,topic_pub))
thread1.start()

但是这个实现没有安全性。

有人可以帮我在 WSO2 消息代理中的 MQTT 订阅中设置身份验证吗?而且我在 WSO2 消息代理应用程序https://localhost:9443/carbon中也没有看到任何订阅的节点信息

4

1 回答 1

0

我的经验是使用 Mosquitto 而不是 WSO2 MB,但快速查看 WSO2 MB 文档,它似乎支持 SSL,这是保护 MQTT 的标准方式(https://docs.wso2.com/display/MB310/Enabling+ SSL+支持)。执行此操作的过程非常简单,只需分发正确的密钥和证书,然后使用 tsl_set() 在脚本中配置它们。

如果您需要更精细的用户/主题级别控件,它们看起来像是通过更大的 WSO2 框架(https://docs.wso2.com/pages/viewpage.action?pageId=30540550#SecurityinWSO2MessageBroker/ApacheQpid-Auth)提供的。但我会让一个对 WSO2 有更多经验的人来解释你的选择。

编辑:顺便说一句,以 / 开头的主题被视为一种不好的做法,因为它会创建一个令人困惑的 / 层。我只想将主题写为“temperature123”

于 2017-03-30T21:16:34.183 回答