mqtt

How to build paho mqtt c++ on windows

风流意气都作罢 提交于 2020-03-03 05:25:13
问题 I have few json data which I need to upload on azure iot hub . I am writing code in c++ and need mqtt to publish all the data to iot hub. I am referring this github page: https://github.com/eclipse/paho.mqtt.cpp But instruction on how to build it is a bit confusing and not seems to be working. Can anyone please explain how can I install mqtt in windows and can use it with visual studio c++. Please help. Thanks 回答1: I struggled the last few days too and I finally got it running. I succeeded

EMQ百万级MQTT消息服务(分布式集群)

大兔子大兔子 提交于 2020-03-01 09:33:24
在强大的单机也比不上集群,EMQ的集群模式很粗暴,只需要把EMQ服务关联在一起然后负载均衡就可以达到集群的效果,这样就算面对1000CK问题也迎刃而解 附上: 喵了个咪的博客: w-blog.cn EMQ官方地址: http://emqtt.com/ EMQ中文文档: http://emqtt.com/docs/v2/guide.html 1.集群方式接受 Erlang/OTP 最初是爱立信为开发电信设备系统设计的编程语言平台,电信设备(路由器、接入网关、…)典型设计是通过背板连接主控板卡与多块业务板卡的分布式系统。 Erlang/OTP 语言平台的分布式程序,由分布互联的 Erlang 运行系统组成,每个 Erlang 运行系统被称为节点(Node),节点(Node) 间通过 TCP 互联,消息传递的方式通信: --------- --------- | Node1 | --------| Node2 | --------- --------- | \ / | | \ / | | / \ | | / \ | --------- --------- | Node3 | --------| Node4 | --------- --------- EMQ 消息服务器集群基于 Erlang/OTP 分布式设计,集群原理可简述为下述两条规则: MQTT 客户端订阅主题时

EMQ百万级MQTT消息服务(ACL鉴权)

一个人想着一个人 提交于 2020-02-29 06:16:31
虽然EMQ已经搭建起来了,但是投入到业务使用中还面临着一些问题,当然MQTT设计之初也考虑了这一点,比如不是任何一个客户端都能链接到服务器和限制客户端能够对topic操作的权限 附上: 喵了个咪的博客: w-blog.cn EMQ官方地址: http://emqtt.com/ EMQ中文文档: http://emqtt.com/docs/v2/guide.html 1.ACL鉴权 先说实际场景,我们需要监听每一台设备的链接和断开事件等EMQ的系统行为,这样的事件当然不是任何一个连接到服务器的终端,这样的限制就是ACL鉴权,官方也提供了默认的鉴权,在 /usr/local/emqttd/etc/acl.conf 下,默认值允许127.0.0.1的IP地址链接监听系统主题 %% 允许'dashboard'用户订阅 '$SYS/#' {allow, {user, "dashboard"}, subscribe, ["$SYS/#"]}. %% 允许本机用户发布订阅全部主题 {allow, {ipaddr, "127.0.0.1"}, pubsub, ["$SYS/#", "#"]}. %% 拒绝用户订阅'$SYS#'与'#'主题 {deny, all, subscribe, ["$SYS/#", {eq, "#"}]}. 规则如下: 允许|拒绝 用户|IP地址|ClientID 发布

nodejs 完成mqtt服务端

老子叫甜甜 提交于 2020-02-29 04:35:48
今天使用mosca 写了一下基于MQTT的消息服务端,用于下一个项目的知识储备; 该功能主要是基本 NODEJS 的 mosca 插件完成 1. 安装 mosca npm install mosca --save 2. 创建mqtt服务端,端口为:8000 var mosca = require('mosca'); var MqttServer = new mosca.Server({ port: 8000 }); 3. mqtt服务端部分逻辑处理 MqttServer.on('clientConnected', function(client){ console.log('client connected', client.id); }); /** * 监听MQTT主题消息 **/ MqttServer.on('published', function(packet, client) { var topic = packet.topic; switch(topic){ case 'pubMsg': console.log('message-publish', packet.payload.toString()); //MQTT转发主题消息 MqttServer.publish({topic: 'other', payload: 'sssss'}); //发送消息NODEJS

使用apache-artemis搭建MQTT服务器

喜欢而已 提交于 2020-02-29 04:26:34
apache-artemis 搭建MQTT服务,windows下和Linux下操作方式基本一致 1、下载二进制包: 官网地址 https://activemq.apache.org/components/artemis/download/ linux 下载后缀为 .tar.gz 的包,windows 下请下载 .zip 后缀的包 $ wget https://mirrors.tuna.tsinghua.edu.cn/apache/activemq/activemq-artemis/2.7.0/apache-artemis-2.7.0-bin.tar.gz 2.解压 $ sudo tar -xzf apache-artemis-2.7.0-bin.tar.gz /opt/ 3.创建 broker 并启动服务 到这里就可以参照说明文档(apache-artemis-2.7.0/README.html)进行配置了 下面以Linux下为例来说明: $ sudo cd /opt/apache-artemis-2.7.0/bin/ $ sudo ./artemis create mybroker # 接下来会进入交互配置,按照提示输入默认用户名、密码、是否允许匿名登录 # 创建完成后可以按照提示启动服务 $ sudo /opt/apache-artemis-2.7.0/bin/mybroker

Esp8266 mqtt无线控制空调

南楼画角 提交于 2020-02-28 21:39:36
对于空调的控制 一般都是红外控制。这样我们就可以将esp模块和红外模块联合使用 这样来对空调进行远程的无线的控制 演示视频: 红外接收 使用的是引脚11 使用波特率是9600 调用的IRremote库,将接收到的光信号转换为数值。 # include <IRremote.h> int PIN_RECV = 11 ; IRrecv irrecv ( PIN_RECV ) ; decode_results results ; void setup ( ) { Serial . begin ( 9600 ) ; irrecv . enableIRIn ( ) ; } void loop ( ) { if ( irrecv . decode ( & results ) ) { Serial . println ( results . value ) ; irrecv . resume ( ) ; } } 可以根据这个代码 来获取到 遥控器上相关按键的值 记录下来 用到下面进行发送 (在我的这个项目中 我是要演示效果,所以控制的是一个数码管 使用arduino pro mini 进行控制 通过红外接收 接收到的信息 处理后控制TM1637数码管进行显示) 红外发送 下列代码经过改造,是使用在要红外控制显示。思路是一样的 就是使用 sendNEC(); 函数发送值

分布式项目(一)iot-pt

╄→尐↘猪︶ㄣ 提交于 2020-02-28 20:54:30
前言 目前很多项目都是些微服务,分布式,基本也都是基于spring cloud,dubbo实现的,关于spring cloud和dubbo网络上也有很多实用教程,但很少有基于项目开发的整套流程来写的,因为项目原因,突然有点小灵感,所以想从项目设计,开发,分布式部署整个流程来记录一个简单的分布式项目大概是个什么样子的。笔者也处于学习提高自己的阶段,所以有写的不好的和不对的地方,欢迎看官指正。 项目介绍 名称 :iot-pt 说明 :iot-pt是一个关于物联网的项目,简单的说就是物理设备通过某种协议上传数据到服务器,服务器对数据进行分类、存储,管理后台通过某些指令可以控制远程的物理设备。 先阶段,物联网设备非常多,熟悉的比如家里的水表,气表,电表,这些都是物联网设备,各种物联网设备所用的协议也是非常之多,像coap,tcp私有协议,lwm2m,mqtt,所传输的数据格式也是五花八门,像16进制,2进制,json等。所以我在构思iot-pt时,让协议和数据格式分开,协议更多的是一种传输规则、拆包规则,而数据格式则是能把物理设备发送的原始数据解码成有业务意义的数据。 业务概念设计 : 概念说明 产品:产品是一个业务概念,是一类物理设备的集合,定义了一类物理设备是什么,比如小米6手机,单个小米6手机,我们可以叫我的手机或者我的移动设备,但是对于小米公司来说

RT-Thread之mqttclient软件包

放肆的年华 提交于 2020-02-28 20:35:43
关于mqttclient软件包 一个基于socket API之上的跨平台MQTT客户端 基于socket API的MQTT客户端,拥有非常简洁的API接口,以极少的资源实现QOS2的服务质量,并且无缝衔接了mbedtls加密库。此仓库是专门为RT-Thread做的软件包,原始仓库位于: https://github.com/jiejieTop/mqttclient 优势: 基于标准BSD socket之上开发 ,只要是兼容BSD socket的系统均可使用。 稳定 :无论是 掉线重连 , 丢包重发 ,都是严格 遵循MQTT协议标准 执行,除此之外对 大数据量 的测试无论是收是发,都是非常稳定(一次发送 135K 数据,3秒一次),高频测试也是非常稳定(7个主题同时收发,每秒一次,也就是1秒14个mqtt报文,服务质量QoS0、QoS1、QoS2都有)。因为作者以极少的资源设计了 记录机制 ,对采用QoS1服务质量的报文必须保证到达一次,对QoS2服务质量的报文有且只有收到一次(如果不相信它稳定性的同学可以自己去修改源码,专门为QoS2服务质量去测试,故意不回复 PUBREC ,让服务器重发QoS2报文,看看客户端是否有且只有处理一次),而对于掉线重连的稳定性,则是 基本操作 了,没啥好说的,因此在测试中稳定性极好。 轻量级 :整个代码工程极其简单,不使用mbedtls情况下

基于NodeJs建设MQTT服务

大城市里の小女人 提交于 2020-02-27 18:12:57
近期因需要开发物联网项目,接触到了使用MQTT服务的网关,因此要在服务端实现MQTT服务,以接收数据。 使用NodeJs建设MQTT模式; 很常规的需要引入mqtt包,npm install mqtt --save,耐心等待,这一步基本上都没问题; 那么在服务端还需要mosca服务,同样,npm install mosca --save。但是在这一步下载时会出现不少问题,如: (1)需要前置下载好python环境 (2)NodeJs版本不能过高,要在2.5-3.0之间 (3)不支持visual studio 2017,需要下载visual studio 2015 (4)报错:C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit code: 1 此抱错需要install另外两个环境(备注:需要用“以管理员权限运行”,否则第二个安装不了),npm install -g node-gyp ; npm install --global --production window-build-tools; 可能还会遇到其他的; 贴两个代码以方便测试 1、服务端 (启动命令 node mqtt-server.js) //var mosca = require('../../../root/node

java模拟MQTT的发布,订阅

这一生的挚爱 提交于 2020-02-27 05:12:54
MQTT目录:    MQTT简单介绍 window安装MQTT服务器和client java模拟MQTT的发布,订阅 在此强调一下mqtt的使用场景:   1、不可靠、网络带宽小的网络   2、运行的设备CPU、内存非常有限 在idea中简单模拟测试代码:   第一步:添加mqtt-client的依赖    <!--验证mqtt协议--> <!-- https://mvnrepository.com/artifact/org.eclipse.paho/mqtt-client --> <dependency> <groupId>org.eclipse.paho</groupId> <artifactId>mqtt-client</artifactId> <version>0.4.0</version> </dependency>   第二步:具体代码实现:     分三部分:       第一:服务端:      1 package com.huhy.web.common.mqtt; 2 3 import org.eclipse.paho.client.mqttv3.MqttClient; 4 import org.eclipse.paho.client.mqttv3.MqttConnectOptions; 5 import org.eclipse.paho.client