使用的是虚拟机vm装的ubuntu18,根据官方文档进行的安装mqtt中的服务器EMQX一种可视化的服务器,简单明了。

        选择安装的版本

mqtt 在docker 自动启动 配置 mqtt启动服务_经验分享

照着文档来,安装完之后启动使用sudo ./emqx start, ./emqx start ,或者 su 输入密码 emqx start 启动emqx,常见不知道的问题之一

mqtt 在docker 自动启动 配置 mqtt启动服务_python_02

这个是已经启动了,可以使用emqx stop 关闭,

启动完了之后可以进入web界面查看自己的emqx,根据当前电脑ip来进行访问 ifconfig 如果报错说什么你没安装那就安装安装完了在ifconfig,然后可以查看到自己ip 

mqtt 在docker 自动启动 配置 mqtt启动服务_经验分享_03

进入浏览器里面外面都行(虚拟机)

输入 http://ip:18083/   默认账号 admin 密码public进去之后可以对ui界面语言修改左边最后一个的最后一个选项进去第一行就是,改完语言之前他可能让你不要使用系统默认的密码让你修改esc了还能进去个人头像用户管理ui界面都认识我都不介绍那么消息了

然后这样就能基本使用自己看看属性个大概

然后下载一个叫做MQTTX的插件简单实现通信应用商店搜然后下

安装完成之后点进去可以看到一点东西,还是老样子左下角最后一个就是设置自己看设置语言

然后点击左边第一个图标进行新建第二个也行接下来进行编译

mqtt 在docker 自动启动 配置 mqtt启动服务_回调函数_04

 

mqtt 在docker 自动启动 配置 mqtt启动服务_经验分享_05

 

写完进行连接

完事儿之后可以在web上面看见自己创建的那俩结点

mqtt 在docker 自动启动 配置 mqtt启动服务_python_06

 然后通信

mqtt 在docker 自动启动 配置 mqtt启动服务_python_07

到 tow

 

mqtt 在docker 自动启动 配置 mqtt启动服务_物联网_08

可以看到01 发给02的消息

 

mqtt 在docker 自动启动 配置 mqtt启动服务_经验分享_09

可以看到02发给01的消息

 

mqtt 在docker 自动启动 配置 mqtt启动服务_经验分享_10

 MQTTX通信就这点东西都是编写一点玩意没意思

代码实现

接受消息的

import paho.mqtt.client as 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,encoding="utf-8"))
    # 答应信息msg : 分开编码 不编码是 b "message"
    


client = mqtt.Client() # 实例化 
client.on_connect = on_connect   # 回调函数,直接调用方法
client.on_message = on_message   # 回调函数,直接调用方法
client.username_pw_set("acg","lol")  # 设置登陆的账号密码 
client.connect("127.0.0.1",1883,60)  # 设置 ip
client.subscribe("message") # 订阅

client.loop_forever()   # 循环

 发布消息的 

import paho.mqtt.client as 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,encoding="utf-8"))
    # 答应信息msg : 分开编码 不编码是 b "message"
    
    


client = mqtt.Client() # 实例化 
client.on_connect = on_connect   # 回调函数,直接调用方法
client.on_message = on_message   # 回调函数,直接调用方法
client.username_pw_set("qwe","lol")   # 设置登陆的账号密码 
client.connect("127.0.0.1",1883,60) # 设置 ip 
client.publish("message","hello word ros",2) # 订阅节点 发布消息 不知道