• 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

  • 相关阅读:
    【转】kafka&zookeeper集群搭建指南
    spark-streaming问题集锦
    Rokid开发者社区skill之【历史上的今天】
    jQuery+Ajax获取百度百科历史上的今天
    python+xpath+requests爬取维基百科历史上的今天
    jQuery请求维基百科[历史上的今天]
    Redis和Memcached比较
    [转]RosBridge小结
    [转]使用rosbridge协议实现安卓跟ros的解耦
    跨域访问之jsonp
  • 原文地址:https://www.cnblogs.com/dongxiaodong/p/9678452.html
Copyright © 2020-2023  润新知