Python MQTT 最简单例程搭建

本文详细介绍如何在Ubuntu 14.04环境下安装并配置MQTT客户端和服务端,包括paho-mqtt模块及Mosquitto代理的安装步骤。通过具体代码示例展示了如何实现消息订阅与发布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • MQTT 不是普通的 client server 模型,他还加了一个 代理者。

    根据剑锋的提示,先下载了 paho-mqtt 模块, ubuntu 14.04 上下载方法如下:
    sudo apt-get install  python-pip
    sudo pip install paho-mqtt
    source paho-mqtt/bin/activate
    sudo apt-get install python-virtualenv
    virtualenv paho-mqtt
  • 下载 broker 代理

    参考: http://www.steves-internet-guide.com/install-mosquitto-linux/#install-test
    sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
     sudo apt-get update
     sudo apt-get install mosquitto
     sudo apt-get install mosquitto-clients
     sudo server mosquitto start
    mosquitto -v
    // 带调试信息的启动
  • server 代码编写

    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))

    client = mqtt.Client()
    client.on_connect = on_connect
    client.on_message = on_message
    client.connect("127.0.0.1", 1883, 60)
    client.loop_forever()
  • client 代码编写

    import paho.mqtt.client as mqtt

    HOST = "127.0.0.1"
    PORT = 1883

    def test():
        client = mqtt.Client()
        client.connect(HOST, PORT, 60)
        client.publish("chat","hello chenfulin",2)
        client.loop_forever()

    if __name__ == '__main__':
        test()
  • 启动

    python server.py
    python client.py
### 构建基于树莓派的Python MQTT服务器 #### 安装必要的软件包 为了在树莓派上建立MQTT服务器,首先需要安装`mosquitto`及其客户端工具。这可以通过执行以下命令来完成: ```bash sudo apt-get update sudo apt-get install mosquitto mosquitto-clients ``` 上述操作会下载并配置好所需的全部依赖项[^4]。 #### 启动Mosquitto服务 一旦安装完毕,通过运行下面这条指令可以启动Mosquitto服务,并开启调试模式以便观察其工作状态: ```bash mosquitto -v ``` 此命令将会使Mosquitto以详细日志的形式展示连接情况和其他重要事件信息。 #### 编写Python脚本创建MQTT客户端实例 接下来,在Python环境中编写一段简单的程序用于测试消息收发功能。这里给出一个基本的例子说明怎样定义回调函数处理接收到的消息以及成功连接后的动作: ```python import paho.mqtt.client as mqtt def on_connect(client, userdata, flags, rc): print(f'Connected to MQTT broker with result code {rc}') client = mqtt.Client() client.on_connect = on_connect broker_address = 'localhost' port = 1883 try: client.connect(broker_address, port=port) except Exception as e: print(e) client.loop_forever() # Keep the connection alive and process network traffic ``` 这段代码实现了与本地MQTT代理(`localhost`)之间的TCP/IP连接尝试,并指定了默认监听端口号(1883)[^5]。 #### 测试发布/订阅机制 为了让整个系统运作起来,还需要至少两个独立进程分别扮演生产者角色(发送方)和消费者角色(接收方)。对于初学者来说,最简单的方法就是利用命令行工具来进行初步验证: - 发布一条新消息到指定的主题下: ```bash mosquitto_pub -h localhost -t test/topic -m "Hello World" ``` - 订阅该主题等待任何可能到来的新通知: ```bash mosquitto_sub -h localhost -t test/topic ``` 以上步骤展示了如何快速搭建起一套简易但完整的MQTT通讯框架,适用于学习目的或是小型项目开发环境中的原型设计阶段[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值