MQTT python测试笔记

【开发者笔记】MQTT python测试笔记

MQTT是基于订阅/发布的物联网协议。

python测试需要一个发送进程和接收进程,即一个发送客户端和一个接收客户端,如果这两个客户端工作在同一个topic下,那么就能进行消息互通了。

服务器用“iot.eclipse.org”就好了,避免了自己搭建服务器,然后流程还可以跑通。

发送客户端代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import  paho.mqtt.client as mqtt
import  paho.mqtt.publish as publish
 
idx  =  0 <br> #往paho/temperature 一直发送内容
while  True :
     print ( "send success" )
     publish.single( "paho/temperature" ,
                payload = "this is message:%s" % idx,
                hostname = "iot.eclipse.org" ,
                client_id = "lora1" ,
                # qos = 0,
                # tls=tls,
                port = 1883 ,
                protocol = mqtt.MQTTv311)
     idx  + =  1

  接收客户端代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import  paho.mqtt.client as mqtt
 
# The callback for when the client receives a CONNACK response from the server.
def  on_connect(client, userdata, flags, rc):
     print ( "Connected with result code " + str (rc))
 
 
# The callback for when a PUBLISH message is received from the server.
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( "iot.eclipse.org" 1883 60 )<br> #订阅频道
client.subscribe( "paho/temperature" )
 
# Blocking call that processes network traffic, dispatches callbacks and
# handles reconnecting.
# Other loop*() functions are available that give a threaded interface and a
# manual interface.
client.loop_forever()

  然后运行两个客户端,就可以在接收端收到消息了。

  MQTT服务器不负责存储数据,需要编写额外的接收客户端来接收数据、分析、入库等。

  MQTT服务器用的是iot.eclipse.org,如果碰巧两个人在用同一个频道,那可能收到别人的消息哦~

  如果要搭建自己的MQTT服务器,那么回头再说。

  玩一玩就好了,不要给服务器增加太多负担哟~

猜你喜欢

转载自blog.csdn.net/pjlxm/article/details/79967361