精华内容
下载资源
问答
  • 【MQTT】在Windows下搭建MQTT服务器

    万次阅读 多人点赞 2016-09-29 18:15:02
    最近在项目中要使用MQTT协议,需要搭建一个MQTT服务器来进行调试,在网络上找了一天,找到的大多数都是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的安装包。

    Mosquitto

    但是我使用的是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服务器步骤:

    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服务运行信息

    其中我们要留意的:

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

    发布消息代码

    下面是往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"})
    

    更新

    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"/>
    

    好饿啊,早知道不做物联网了

    展开全文
  • MQTT 服务器

    2017-08-09 09:17:08
    将Node HTTP服务器修改成具备MQTT Websocket能力 var mosca = require("mosca"); var ascoltatore = { //using ascoltatore // type: 'mongo', // url: 'mongodb://localhost:27017/mqtt', // pubsubCollection...

    将Node HTTP服务器修改成具备MQTT Websocket能力

    var mosca = require("mosca");
    
    var ascoltatore = {
    	//using ascoltatore
    	// type: 'mongo',
    	// url: 'mongodb://localhost:27017/mqtt',
    	// pubsubCollection: 'ascoltatori',
    	// mongo: {}
    };
    
    var http = require('http'),
        httpServ = http.createServer();
    	
    var settings = {
    };
    
    var server = new mosca.Server(settings);
    
    server.attachHttpServer(httpServ);
    httpServ.listen(3000);
    
    // fired when the mqtt server is ready
    server.on('ready',function(){
    	console.log('Mosca Server is up and running ....');
    });
    
    // fired when a message is received
    server.on('published',function(packet,client){
    	var buffer = packet.payload;
    	console.log("============published:==========", buffer);
    });
    
    server.on('subscribed',function(topic,client){
    	console.log("subscribed:", topic);
    });
    
    server.on('unsubscribed',function(topic,client){
    	console.log("unsubcribed:", topic);
    });
    
    server.on('clientConnected',function(client){
    	console.log('client connected:',client.id);
    });
    
    server.on('clientDisconnected',function(client){
    	console.log('client disConnected:',client.id);
    });



    展开全文
  • MQTT服务器服务端

    2020-11-18 10:34:29
    MQTT服务器服务端
  • space有两种方法使用MQTT服务,一是租用现成的MQTT服务器,如阿里云,百度云,华为云等公用的云平台提供的MQTT服务,使用公用的MQTT服务器的好处是省事,但如果仅仅用于测试学习还需要注册帐号,灵活性差些,有的...

    212daa6eb4eb0bb3ccd0efc798568562.png

    MQTT协议是广泛应用的物联网协议,使用测试MQTT协议需要MQTT的代理。space

    有两种方法使用MQTT服务,一是租用现成的MQTT服务器,如阿里云,百度云,华为云等公用的云平台提供的MQTT服务,使用公用的MQTT服务器的好处是省事,但如果仅仅用于测试学习还需要注册帐号,灵活性差些,有的平台还需要付费。另一方法是自己使用开源的MQTT组件来搭建。

    MQTT服务器非常多,如apache的ActiveMQ,emtqqd,HiveMQ,Emitter,Mosquitto,Moquette等等。

    这里介绍的是用轻量级的mosquitto开源项目来搭建一个属于自己的MQTT服务器。

    第一步:需要安装一台linux主机,这不多介绍,可以使用真机安装也可以使用虚拟机安装。如果仅仅是自己测试使用都可以。

    第二步:下载mosquitto需要的依赖

    sudo apt-get install libssl-devsudo apt-get install uuid-devsudo apt-get install cmake

    第三步:下载mosquitto并解压,现在mosquitto官网最新的版本是1.5.1

    tar xzvf mosquitto-1.5.1.tar.gz

    第四步:编译

    cd mosquitto-1.5.1/

    make

    make install

    第五步:启动mosquitto

    ./mosquitto -v

    1535473957: mosquitto version 1.5.1 starting

    1535473957: Using default config.

    1535473957: Opening ipv4 listen socket on port 1883.

    1535473957: Opening ipv6 listen socket on port 1883.

    这时候mosquitto就会以默认的参数启动。如果需要带配置文件可以修改配置文件mosquitto.conf,

    启动时候加上参数 -c,

    ./mosquitto -c mosquitto.conf

    可以看到,mosquitto监听的端口为1883.

    这时候我们的MQTT服务器就搭建好了。可找一个mqtt客户端来测试一下。

    先发布一个主题“home/garden/fountain/2”

    内容是“hello world”

    这时候在mosquitto会打印出下面的log

    535474247: New connection from 192.168.1.105 on port 1883.

    1535474247: New client connected from 192.168.1.105 as MQTT_FX_Client (c1, k60).

    1535474247: No will message specified.

    1535474247: Sending CONNACK to MQTT_FX_Client (0, 0)

    1535474307: Received PINGREQ from MQTT_FX_Client

    1535474307: Sending PINGRESP to MQTT_FX_Client

    1535474339: Received PUBLISH from MQTT_FX_Client (d0, q0, r0, m0, 'home/garden/fountain/2', ... (12 bytes))

    1535474367: Received PINGREQ from MQTT_FX_Client

    1535474367: Sending PINGRESP to MQTT_FX_Client

    订阅主题“home/garden/fountain/2”

    可以看到收到了自己发布的消息。

    用wireshark抓包

    可以看到抓到了一个MQTT的publish的报文。

    展开全文
  • 前言本节,我们使用腾讯云部署一个mqtt服务器,服务器采用EMQX Broker,支持百万计并发量控制,单机版本是开源免费的,企业集群分布式部署需要收费,我们作为DIY爱好者使用单机版本即可。一、基础知识1.EMQX Broker...

    04b19ff00d36dc5d0d39112d1ec20bb4.png

    前言

    本节,我们使用腾讯云部署一个mqtt服务器,服务器采用EMQX Broker,支持百万计并发量控制,单机版本是开源免费的,企业集群分布式部署需要收费,我们作为DIY爱好者使用单机版本即可。

    一、基础知识

    1.EMQX Broker简介

    EMQ X Broker 是基于高并发的 Erlang/OTP 语言平台开发,支持百万级连接和分布式集群架构,发布订阅模式的开源 MQTT 消息服务器

    EMQ X Broker 在全球物联网市场广泛应用。无论是产品原型设计、物联网创业公司、还是大规模的商业部署,EMQ X Broker 都支持开源免费使用。

    9c406938fe40ddac683709400521babc.png

    二、云端部署

    1.腾讯云类型

    部署之前需要购买腾讯云服务器,本届使用的是ubuntu 18.04server lts

    2.腾讯云类型

    配置端口和hostname

    9d59a2810bb563c4a0b615e6dacfcb01.png

    双击ssh2,在弹出框中点击Accept & save

    3e1eb2ce426fe794676d51c6e0301b8b.png

    输入用户码和密码

    8b5c19284948646d3088d024560cb370.png

    点击OK按钮,登陆成功后结果如下图:

    4f4555b36d0e1196eb7d5234af97925b.png

    3.安装部署emqx

    下载安装包:

    wget https://www.emqx.io/downloads/broker/v4.0.6/emqx-ubuntu18.04-v4.0.6_amd64.deb

    安装

    sudo dpkg -i emqx-ubuntu18.04-v4.0.6_amd64.deb

    启动服务

    sudo emqx start

    log如下

    6f79e4a5dc5c3ca447867e9b08f0fc98.png

    三、访问云端

    然后登陆dashboad验证即可,本节地址是http://106.54.72.153:18083/,大家换成自己的地址即可,默认用户码和密码分别是:admin : public

    0562504ceb5607aac3f841ea7c49de27.png
    展开全文
  • go语言MQTT服务器(五)MQTT服务器集群 GOMQ服务器,写的不好,别见外 一、节点间数据交互端口配置 二、配置两个节点,上面的节点间数据交互端口图也要修改里面的三个参数 三、MQTT.fx测试工具测试:连接配置,...
  • MQTT1、MQTT (消息队列遥测传输),协议支持所有平台,把所有联网...MQTT 是基于TCP长连接,首先跟MQTT服务器简历TCP连接,然后发送登陆请求,要保持长连接,还要定时发心跳包跟服务器保持连接。名字值流向描述CONNE...
  • MQTT猫用于连接MQTT服务器,作为连接服务器的一个可用客户端
  • 前言本节,我们使用腾讯云部署一个mqtt服务器,服务器采用EMQX Broker,支持百万计并发量控制,单机版本是开源免费的,企业集群分布式部署需要收费,我们作为DIY爱好者使用单机版本即可。一、基础知识1.EMQX Broker...
  • 简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低...本文就社区上常见的开源MQTT服务器在常见操作系统上的搭建做详细介绍。目前一些开源MQTT服...
  • mqtt服务器.zip

    2021-04-22 10:19:15
    mqtt服务器,适用于linux的centos7及以上
  • java连接MQTT服务器(Springboot整合MQTT)

    万次阅读 多人点赞 2020-01-13 19:38:18
    二、本文只讲解java连接MQTT服务器进行数据处理 一、业务场景 硬件采集的数据传入EMQX平台(采用MQTT协议),java通过代码连接MQTT服务器,进行采集数据接收、解析、业务处理、存储入库、数据展示。 MQTT 是基于...
  • mqtt服务器ipk

    2018-07-28 00:41:17
    MQTT服务器ipk安装包,内附安装指导 命令:opkg install xxx.ipk 安装
  • 其思想是使用python将同一主题发布到两个不同的MQTT服务器中。我是说,像这样:import paho.mqtt.client as pahoimport datetime, timemqttc = paho.Client()host1 = "broker.hivemq.com" # the address of 1st mqtt...
  • 使用ssl连接腾讯MQTT服务器,使用了cert验证,可根据自己需要编写回调函数,操作lcd或者其他的硬件,注释比较少,功能完全没问题,不适合新手阅读,适合对框架有一定了解的人使用。
  • MQTT服务器搭建教程

    2017-08-31 09:03:27
    本教程为本地MQTT服务器搭建,搭建此本地MQTT服务器必须先为电脑配置java 环境,然后用CMD命令按步骤运行apache-apollo-1.7.1下相关exe搭建服务器
  • 从 v4.1 版本开始,EMQ X MQTT 服务器 提供了专门的多语言支持插件 emqx_extension_hook ,现已支持使用其他编程语言来处理 EMQ X 中的钩子事件,开发者可以使用 Python 或者 Java 快速开发自己的插件,在官方功能的...
  • MQTT再学习 -- 搭建MQTT服务器及测试

    万次阅读 多人点赞 2017-08-04 13:56:07
    最近在搞 PM2.5 采集,需要用到 MQTT 传输协议。协议部分看了几天的,讲的七七八八。本身在 intel 上有 写好的MQTT 的源码,现在的工作其实也...不过,对于之前没有接触过的我来说,还是从头开始,搭建服务器及测...
  • 前文安装完MQTT服务器程序后,通过命令行发出或接收数据(pub或sub),用于测试服务器,仅仅是构建系统的第一步。下面更重要的一步是客户端程序,如嵌入式系统ESP8266,通过程序访问MQTT服务器,通过程序与之进行...
  • 近来对于mqtt服务器mosquitto和nats服务器gnatsd稍有研究(三四天时间),gnastd性能很不错,但输在于没有持久化和非标准协议导致客户端支持处于弱势,mosquitto性能太差,代码极度缺少优化,但因为胜在mqtt标准,...
  • 安装mqtt 服务器

    2020-11-27 14:41:27
    MQTT本身只是一种通讯协议和规范,只要按照其规范设计成的消息交换服务器,都可以作为MQTT服务器 所以MQTT服务器有很多种,也可以自己开发 apache-apollo是由apache推出的,在ActiveMQ基础上进行优化的一款服务器,...
  • 1MQTT服务器硬件模块 2MQTT服务器电脑搭建 2.1自己搭建 2.2租阿里云服务器 2MQTT服务器手机控制端 参考教程 1 硬件 1.1MQTT--NodeMCU及MQTT接发消息体验 https://www.jianshu.com/p/701f4...
  • node搭建mqtt服务器

    2018-04-04 14:45:28
    用node搭建mqtt服务器,通过消息的订阅和发布来传递信息。
  • 自己搭建了MQTT服务器,采集的设备数据,怎么在后台web页面展示,刚入物联网,请多多指教
  • 基于树莓派构建物联网系统的搭建,前文介绍了其的前两个部分,分别是在树莓派上安装和测试mqtt服务器软件,以及在线的嵌入式系统ESP8266(Node MCU)与树莓派服务器之间的通讯。是不是还缺少了什么?是的,还缺少了...
  • 使用MQTTnet连接Mqtt服务器

    千次阅读 2018-09-07 09:16:52
    上篇文章介绍了mqttnet的内容,并使用mqttnet搭建了一个mqtt服务器。本篇文章将继续使用mqttnet做一个客户端,用于连接mqtt服务器。 client的界面部署入下图所示, 1、单个mqtt client,可是使用订阅主题和发布...
  • 创建MQTT服务器

    2021-01-03 22:04:39
    创建MQTT服务器 查阅MQTT服务器所需要的端口 在阿里云服务器的控制台中将所需端口添加进安全组 注意还需添加一个18083端口 远程登陆服务器 使用脚本安装EMQ curl https://repos.emqx.io/install_emqx.sh | bash ...
  • esp8266结合mqtt服务器

    2019-01-14 17:07:12
    基于stn32的esp8266结合mqtt服务器,实现云端数据传输
  • 最近同事在开发一款物联网硬件,需要将采集的数据传输到客户的MQTT服务器上,目前正处理调试阶段,连接到对方服务器测试很不方便,于是想要自己搭建一个MQTT测试服务器。在网上搜索了常用的MQTT代理服务器,最终决定...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,903
精华内容 1,961
关键字:

mqtt服务器