严格来说应该是MQTT消息代理,不过服务器可能更容易被理解一些。
MQTT协议
这个协议在物联网用的还是挺多的,而且是实时通讯。大概构成是有一个服务器(严格来说应该叫broker消息代理,因为他只是中转消息并不产生内容)。然后链接上去的客户端可以订阅某个topic,也可以给特定topic发送内容,发送时所有订阅了这个topic的客户端都会收到数据。所以消息的流程就是发布者和订阅者都链接到broker上,订阅者订阅某个topic,然后推送者有数据要推送时就给topic推送数据,数据经过消息代理,转发给订阅者。
选型
我本来是想自己用python做一个mqtt服务器,不过找了半天好像没有非常合适的。最后只能用一个现成的MQTT broker了。选型的话我看了下这里https://wivwiv.com/post/best-mqtt-broker/。EMQX这个是国内的一个团队做的,还开源我就用这个了
安装
安装还是比较简单的,我直接按照debian的arm64来安装的
协议
EMQX支持两种连接方式,一种是直接mqtt,另外一种是mqtt over websocket
所以这两种方式都是可以的
注意服务器地址、端口号和path
不过如果你也用flask_mqtt的话,要用上面那种,因为那个才是原生的mqtt协议
网友评论