zoukankan      html  css  js  c++  java
  • MQTT客户端搭建( Python 与 命令行)

    命令行客户端

    测试工具:树莓派

    下载Mosquitto

    更新软件源:sudo apt-get  update

    下载g++编译器:sudo apt-get install g++

    安装:sudo apt-get install libssl-dev

    安装:sudo apt-get install uuid-dev

    下载客户端文件:http://mosquitto.org/files/source/mosquitto-1.5.tar.gz

    也可以直接网页下载:

    解压:sudo tar zxfv mosquitto-1.5.tar.gz

    进入解压目录:cd mosquitto-1.5

    注意:此处不需要一般源码包安装步骤:./configure..........

    编译:make

    安装:sudo make install

    测试:mosquitto -v

     Python客户端

    下载python第三方库:

    方法1:

    使用命令直接安装

     pip3 install paho-mqtt

    方法2:

    通过源码安装

    下载:https://github.com/eclipse/paho.mqtt.python

    打开:cd paho.mqtt.python
    安装:python setup.py install

    编写实现代码:

    运行后会一直等待数据接收

     1 import paho.mqtt.client as mqtt
     2 import time
     3 
     4 HOST = "服务器IP地址-----" #如 192.168.11.23
     5 PORT = 61613#端口号----
     6 
     7 #MQTT程序入口
     8 def client_loop():
     9     client_id = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))# ClientId不能重复,所以使用当前时间
    10     client = mqtt.Client(client_id) 
    11     client.username_pw_set("用户名---", "密码---")
    12     client.on_connect = on_connect
    13     client.on_message = on_message
    14     client.connect(HOST, PORT, 60)
    15     client.publish("消息号-----", "MQTT start", qos=0, retain=False) # 发布消息
    16     client.loop_forever()
    17     
    18 #连接
    19 def on_connect(client, userdata, flags, rc):
    20     print("Connected with result code "+str(rc))
    21     client.subscribe("消息号------",0)#订阅,参数为(订阅号,Qos值)
    22     
    23 #消息接收,此处会一直阻塞主线程
    24 def on_message(client, userdata, msg):#打印订阅消息
    25     print(msg.topic+" "+msg.payload.decode("utf-8"))
    26     
    27 #程序主入口
    28 if __name__ == '__main__':
    29     client_loop()

    改进:

    实现非阻塞主线程

    import threading
    
    #在线程函数中调用MQTT程序入口
    def run11(varx):
        client_loop()
    
    #创建线程
    t1=threading.Thread(target=run11,args=("var1111",))
    t1.start()

    运行效果:

    云端java自编客户端捕获和推送消息:


     参考:

    https://blog.csdn.net/itas109/article/details/78873257

    https://blog.csdn.net/xukai871105/article/details/39255089

  • 相关阅读:
    MyEclipse 修改代码不生效
    最简单的网页分享代码
    php libevent 扩展使用示例
    function gzdecode
    20165327 2017-2018-2 《Java程序设计》第9周学习总结
    结对编程_四则运算
    20165327 2017-2018-2 《Java程序设计》第8周学习总结
    2017-2018-2 20165327 实验二 《Java面向对象程序设计》实验报告
    20165327 2017-2018-2 《Java程序设计》第7周学习总结
    20165327 2017-2018-2 《Java程序设计》第6周学习总结
  • 原文地址:https://www.cnblogs.com/dongxiaodong/p/9678452.html
Copyright © 2011-2022 走看看