我使用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 Message Broker中设置MQTT订阅中的身份验证吗? 我也没有在WSO2消息代理应用程序https://localhost:9443/carbon
中看到任何订阅的节点信息答案 0 :(得分:0)
我的经验是使用Mosquitto而不是WSO2 MB,但是从WSO2 MB文档的快速浏览看来,它似乎支持SSL,这是保护MQTT(https://docs.wso2.com/display/MB310/Enabling+SSL+Support)的标准方法。执行此操作的过程非常简单,只需分发正确的密钥和证书,然后使用tsl_set()在脚本中配置它们。
如果您需要更微妙的用户/主题级别控件,看起来它们是通过更大的WSO2框架(https://docs.wso2.com/pages/viewpage.action?pageId=30540550#SecurityinWSO2MessageBroker/ApacheQpid-Auth)提供的。但我会留下一个有更多WSO2经验的人来解释你的选择。
编辑:顺便说一下,使用/启动主题被视为一种不好的做法,因为它会创建一个令人困惑的/层。我只想把主题写成“temperature123”