4.4 MQTT服务端搭建

 Mqtt服务端作为控制网络的核心,起到连接各个控制设备,实现指令转发,数据处理等作用。Mqtt服务端的搭建与TCP、UDP、HTTP等常见的Client-Server模型有些不一样,它还需要一个broker 代理,且mqtt编程需要依赖名为“paho-mqtt”的模块,为此,我们要再次配置开发环境,步骤如下:
下载安装“paho—MQTT”模块:

sudo pip install paho-mqtt
添加环境变量:
source paho-mqtt/bin/activate
下载 broker 代理:
sudo apt-get install mosquitto mosquitto-clients
启动代理:
sudo server mosquitto start
broker 代理启动起来后就可以来编写服务端了。具体代码如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#导入模块
import paho.mqtt.client as mqtt
#定义一个连接回调函数
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe("chat")
#定义一个消息回调函数
def on_message(client, userdata, msg):
print(msg.topic+" " + ":" + str(msg.payload))
#主函数
def main():
client = mqtt.Client()
# 将回调函数指派给客户端实例
client.on_connect = on_connect
client.on_message = on_message
# 连接到代理
client.connect("127.0.0.1", 1883, 60)
#维持与MQTT代理之间的流量
client.loop_forever()