转 【MQTT】在Windows下搭建MQTT服务器

MQTT简介

MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。该协议的特点有:

  • 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
  • 对负载内容屏蔽的消息传输。
  • 使用 TCP/IP 提供网络连接。
  • 小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。
  • 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。
  • 有三种消息发布服务质量: 
    • “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
    • “至少一次”,确保消息到达,但消息重复可能会发生。
    • “只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。

Mosquitto是一款「An Open Source MQTT v3.1/v3.1.1 Broker」——开源的MQTT代理服务器,其下也有Windows的安装包。

但是我使用的是Win10 64位系统,这两个都下载安装后不是报错就是缺少dll文件,不能使用。

最后参考了前面博客说的,搭建了Apollo服务器,这里使用的Apollo 1.7.1。

搭建MQTT服务器

使用Apollo搭建MQTT服务器步骤:

  1. 下载Apollo服务器并解压,在CMD环境运行其工作目录下的...\bin\apollo.cmd,命令后面带上参数「create mybroker」,创建服务器实例。这里需要Java环境,系统环境变量下要有JAVA_HOME。
  2. 创建实例之后会在bin目录下生成mybroker文件夹,其中 ...\etc\apollo.xml文件下是配置服务器信息的文件,...\etc\users.properties文件包含连接MQTT服务器时用到的用户名和密码,初始默认帐号是admin,密码password;
  3. 进入...\mybroker\bin\ 目录,在CMD输入命令「apollo-broker.cmd run」,可以使用TAB键自动补全,运行后输出信息如下:

其中我们要留意的:

MQTT服务器TCP连接端口:tcp://0.0.0.0:61613

后台Web管理页面: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()

  

下面是往M

发布消息代码

QTT服务器发布消息的代码

import paho.mqtt.publish as publish

HOST = "127.0.0.1"

publish.single("lettuce", "payload", hostname=HOST, port=61613,
               auth={‘username‘: "admin", ‘password‘:"password"})

  

.


更新

2017年7月28日更新:

最近发现了一款比较好的开源MQTT服务器:EMQ。Linux下部署教程可以参考这篇文章:EMQ初体验——在CentOS7上部署MQTT服务器

Windows下部署可以到官网查阅相关资料。

2017年8月15日更新:

注意:后台Web管理页面被设置为只能本地访问,如果想用其他主机访问该管理页面,需要修改「http://127.0.0.1:61680/」为「http://0.0.0.0:61680/」。

相关配置文件:apache-apollo-1.7.1\bin\mybroker\etc\apollo.xml,大约61行:

<web_admin bind="http://127.0.0.1:61680"/>
<web_admin bind="https://127.0.0.1:61681"/>

原文地址:https://www.cnblogs.com/saryli/p/8964145.html

时间: 2024-07-30 10:09:39

转 【MQTT】在Windows下搭建MQTT服务器的相关文章

Windows下搭建FTP服务器

以Windows8 为例,介绍一下搭建 FTP服务器的步骤: 1.为Windows开启FTP功能:控制面板->程序->启用或关闭Windows功能,将下图所示的复选框选中 2.添加FTP站点:右键计算机->管理->服务和应用程序,选择Internet 信息服务 IIS 管理,如下图所示添加FTP站点 3.设置站点名称和你想要公开的路径 4.绑定地址和ssl设置: ip地址填上本机地址,端口默认21,需要ssl,证书选择IIS Express Development Certific

windows 下搭建git服务器,及问题处理。

最近要做一个源码管理服务器,权衡了一下还是git最适合,搭建服务器前看了网上一些windows下搭建git服务器的帖子,感觉还比较简单,没有太多需要配置的地方,于是开始动手. 我选择的是 gitfor windows + Tortoisegit + Copssh gitfor windows下载地址 http://msysgit.github.io/最新版的 Git-1.9.4-preview20140611 putty 用来测试ssh连接 同时还需要工具 puttygen 用来转换 copss

windows下搭建nginx-rtmp服务器

windows下搭建nginx-rtmp服务器 windows下搭建nginx-rtmp服务器 准备工作 安装MinGW 安装Mercurial 安装strawberryperl 安装nasm 下载nginx相关的源码包 编译nginx nginx-rtmp环境搭建 效果测试 最后说明 最近因为接触直播相关的技术工作,使用的也是基于高并发和高性能的nginx,首先需要做的当然是搭建一个nginx服务器. 对于linux上nginx服务器的搭建此处就不再赘述,按照操作指引来的话一般都能顺理成章搭建

Windows下搭建Redis服务器

Redis服务器是当下比较流行的缓存服务器,Redis通常被人拿来和Memcached进行对比.在我看来,应当是各具优势吧,虽然应用场景基本类似,但总会根据项目的不同来进行不通的选用. 我们今天主要讲Redis在windows平台下的安装和部署.进入正题-> 一.单机部署使用Redis 1.下载Redis,我选用的是当下的最新版本3.2.0 地址在这里https://github.com/MSOpenTech/redis/releases 下载好之后,直接解压到任意位置,我存放在了 D:\Pro

windows下搭建solr服务器,整合tomcat

初学者,要是有什么不对的地方请不吝赐教. solr一般是用在linux下,但是对于初学者来说,在linux下操作还是会有些问题.所以,我们还是先在windows下练练手.solr是使用java编写,所以既可以在linux也可以在windows运行.配置过程差不多,都可以互相参考. 需要的文件及环境: JDK 1.7+,并配置环境变量 tomcat solr 1.官网下载solr 进入下载地址 http://apache.fayea.com/lucene/solr/    官网 地址  http:

Windows 下搭建LDAP服务器

五一闲来没事,加上项目正在进行UAT.抽空研究了一下LDAP相关知识.随手做一个记录. 为了方便阅读还是先介绍一下什么是LDAP? 前言.Lightweight Directory Access Protocol: The Lightweight Directory Access Protocol , or LDAP ,is an application protocol for querying and modifying directory services running over TCP

在Windows下搭建Gitlab服务器

一.GitLab简介 GitLab 是一个用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释.可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库.团队成员可以利用内置的简单聊天程序(Wall)进行交流.它还提供一个代码片段收集功能可以轻松实现代码复用. 二.GitLab和Github的联系和区别 Github - 一个网站,提供

windows下搭建seafile服务器,拥有自己的个人云盘,不再担心网盘丢

1.       下载所需环境.软件(Python 2.7.11 32 位版本) 注意:一定要使用 Python 2.7.11 32 位版本.64 位版本或不是 2.7.11 的版本不能工作. 2.双击安装python-2.7.11,一直next知道完成. 配置python环境变量: 右击这台电脑-属性-高级系统设置,找到环境变量 python默认安装在C:\Python27路径下,那么就将C:\Python27添加到环境变量中. 3.在E盘创建SeafileProgram文件夹,将seafil

Windows下搭建Git服务器各种问题汇总(一)

************************************************************************************************************ 在使用Git Push代码到数据仓库时,提示如下错误: ...[remote rejected] master -> master (branch is currently checked out)... 错误原因以及解决 这是由于服务器git默认拒绝了push操作,需要修改服务器