MQTT环境搭建(python测试)

在ubuntu16.04/rk3399上搭建mqtt服务器并不难,主要就是用到了mosquitto这款消息代理服务软件.其采用发布/订阅模式传输机制,轻量、简单、开放并易于实现,被广泛应用于物联网之中.

1.环境搭建

1.1依赖环境

sudo apt  install gcc-c++
sudo apt install cmake
sudo apt install openssl-dev

1.2 安装c-areas(支持异步DNS查找的库)

wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
tar xvf c-ares-1.10.0.tar.gz
cd c-ares-1.10.0
./configure
make
sudo make install

1.3 安装lib-uuid

sudo apt install uuid-dev

1.4 安装libwebsockets

wget https://github.com/warmcat/libwebsockets/archive/v1.3-chrome37-firefox30.tar.gz
tar zxvf v1.3-chrome37-firefox30.tar.gz
cd libwebsockets-1.3-chrome37-firefox30
mkdir build
cd build
cmake .. -DLIB_SUFFIX=64
make install

1.5 下载mosquitto与安装

mkdir software
cd software
wget http://mosquitto.org/files/source/mosquitto-1.4.10.tar.gz
tar -xzvf mosquitto-1.4.10.tar.gz

cd mosquitto-1.4.10
make -j4
sudo make install

2.启动测试

创建用户:

sudo groupadd mosquitto
sudo useradd -g mosquitto mosquitto

程序配置:

mv /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf

启动程序:

mosquitto -c /etc/mosquitto/mosquitto.conf -d

最后我们再打开一个服务器窗口,在一个(订阅)窗口输入:

mosquitto_sub -t hello

另一个(发布)窗口输入:

mosquitto_pub -t hello -h localhost -m "hello world!"

结果如下:
在这里插入图片描述

3.python同样程序测试

3.1 sub.py代码

import paho.mqtt.client as mqtt # 导入mqtt客户端库
 
def on_connect(client, userdata, flags, rc): # 连接成功回调函数
  print("Connected with result code "+str(rc))

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("localhost", 1883, 60)
client.subscribe('emqtt',qos=0)## 订阅emqtt主题
client.loop_forever()# 循环等待消息

3.2 pub.py代码

import paho.mqtt.client as mqtt # 导入mqtt客户端库
 
def on_connect(client, userdata, flags, rc):# 连接成功回调函数
  print("Connected with result code "+str(rc))

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("localhost", 1883, 60)
client.publish('emqtt',payload='Hello,EMQ!',qos=0)
client.loop_start()

3.3 运行结果

在这里插入图片描述接下来看看mqtt c版本是如何运行的.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值