MQTT】在Windows下搭建MQTT服务器
2017-07-25 14:50
567 查看
转载地址:http://blog.csdn.net/yannanxiu/article/details/52703946
MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。该协议的特点有:
使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
对负载内容屏蔽的消息传输。
使用 TCP/IP 提供网络连接。
小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。
使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。
有三种消息发布服务质量:
“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
“至少一次”,确保消息到达,但消息重复可能会发生。
“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
最近在项目中要使用MQTT协议,需要搭建一个MQTT服务器来进行调试,在网络上找了一天,找到的大多数都是MQTT客户端,最后发现这篇博客写的教程可以使用,特此记录。
在寻找MQTT服务器的过程中,我发现的Mosquitto是一款「An Open Source MQTT v3.1/v3.1.1 Broker」——开源的MQTT代理服务器,其下也有Windows的安装包
但是我使用的是Win10 64位系统,这两个都下载安装后不是报错就是缺少dll文件,不能使用。
最后参考了前面博客说的,搭建了Apollo服务器,这里使用的Apollo 1.7.1。
官网:http://activemq.apache.org/index.html
下载地址:http://activemq.apache.org/apollo/download.html
快速开始教程:http://activemq.apache.org/apollo/documentation/getting-started.html
使用Apollo搭建MQTT服务器步骤:
下载Apollo服务器并解压,在CMD环境运行其工作目录下的 bin\apollo.cmd,命令后面带上参数「create mybroker」,创建服务器实例。这里需要Java环境,系统环境变量下要有JAVA_HOME。
创建实例之后会在bin目录下生成mybroker文件夹,其中 etc\apollo.xml 文件下是配置服务器信息的文件,etc\users.properties 文件包含连接MQTT服务器时用到的用户名和密码,初始默认帐号是admin,密码password;
进入 mybroker\bin\ 目录,在CMD输入命令「apollo-broker.cmd run」,可以使用TAB键自动补全,运行后输出信息如下:
其中我们要留意的:
MQTT服务器TCP连接端口:tcp://0.0.0.0:61613
后台登录接口:https://127.0.0.1:61681/或http://127.0.0.1:61680/
登录服务器后,如果MQTT服务器有客户端连接,后台会显示如下
在Python环境下有MQTT客户端包——paho-mqtt。
pip install paho-mqtt
下面是MQTT客户端代码清单
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
下面是往MQTT服务器发布消息的代码
MQTT简介
MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。该协议的特点有:使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
对负载内容屏蔽的消息传输。
使用 TCP/IP 提供网络连接。
小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。
使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。
有三种消息发布服务质量:
“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
“至少一次”,确保消息到达,但消息重复可能会发生。
“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
前言
最近在项目中要使用MQTT协议,需要搭建一个MQTT服务器来进行调试,在网络上找了一天,找到的大多数都是MQTT客户端,最后发现这篇博客写的教程可以使用,特此记录。
寻找过程
在寻找MQTT服务器的过程中,我发现的Mosquitto是一款「An Open Source MQTT v3.1/v3.1.1 Broker」——开源的MQTT代理服务器,其下也有Windows的安装包 但是我使用的是Win10 64位系统,这两个都下载安装后不是报错就是缺少dll文件,不能使用。
最后参考了前面博客说的,搭建了Apollo服务器,这里使用的Apollo 1.7.1。
官网:http://activemq.apache.org/index.html
下载地址:http://activemq.apache.org/apollo/download.html
快速开始教程:http://activemq.apache.org/apollo/documentation/getting-started.html
搭建MQTT服务器
使用Apollo搭建MQTT服务器步骤:下载Apollo服务器并解压,在CMD环境运行其工作目录下的 bin\apollo.cmd,命令后面带上参数「create mybroker」,创建服务器实例。这里需要Java环境,系统环境变量下要有JAVA_HOME。
创建实例之后会在bin目录下生成mybroker文件夹,其中 etc\apollo.xml 文件下是配置服务器信息的文件,etc\users.properties 文件包含连接MQTT服务器时用到的用户名和密码,初始默认帐号是admin,密码password;
进入 mybroker\bin\ 目录,在CMD输入命令「apollo-broker.cmd run」,可以使用TAB键自动补全,运行后输出信息如下:
其中我们要留意的:
MQTT服务器TCP连接端口:tcp://0.0.0.0:61613
后台登录接口:https://127.0.0.1:61681/或http://127.0.0.1:61680/
登录服务器后,如果MQTT服务器有客户端连接,后台会显示如下
Python的MQTT客户端
在Python环境下有MQTT客户端包——paho-mqtt。
安装命令
pip install paho-mqtt
客户端代码清单
下面是MQTT客户端代码清单import paho.mqtt.client as mqtt def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) client.subscribe("lettuce") def on_message(client, userdata, msg): print(msg.topic+" "+str(msg.payload)) client = mqtt.Client() client.username_pw_set("admin", "password") # 必须设置,否则会返回「Connected with result code 4」 client.on_connect = on_connect client.on_message = on_message HOST = "127.0.0.1" client.connect(HOST, 61613, 60) client.loop_forever()1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
发布消息代码
下面是往MQTT服务器发布消息的代码import paho.mqtt.publish as publish HOST = "127.0.0.1" publish.single("lettuce", "payload", hostname=HOST, port=61613, auth={'username': "admin", 'password':"password"})
相关文章推荐
- 【MQTT】在Windows下搭建MQTT服务器
- MQTT服务器的搭建(Windows平台)
- Esp8266进阶之路⑨ 【小实战上篇】Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。(带Demo)
- 【MQTT】在Windows下搭建MQTT服务器
- MQTT服务器的搭建(Windows平台)
- 【MQTT】在Windows下搭建MQTT服务器
- 【MQTT】在Windows下搭建MQTT服务器
- windows下搭建MQTT服务器--Apollo--LG二进制
- 【MQTT】在Windows下搭建MQTT服务器
- windows环境下搭建MQTT服务器
- Esp8266进阶之路10 【小实战下篇】Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。(带Demo)
- 在Windows下搭建Gitlab服务器
- windows下svn服务器搭建与使用
- 搭建Windows Red5流媒体服务器详解
- 在Windows下快速搭建SVN服务器 VisualSVN
- Windows下搭建Subversion 服务器
- Windows下使用VisualSVN Server搭建SVN服务器
- CocosCreator开发笔记(3)-Windows系统用IIS搭建Web发布服务器
- Windows 2003 server 搭建拨号服务器