mosquitto

MQTT Broker 选型

夙愿已清 提交于 2019-11-29 21:42:55
broker的主要职责是接受发布者发布的所有消息,并将其过滤后分发给不同的消息订阅者。 如今有很多的broker,下面就是一张关于各种broker对比的图片: image 目前我用过的有mosquitto和emqttd(2.0版本后改叫EMQ),因为目前的需求是希望做每秒10万以上的数据接入,所以需要考虑建立集群。但是在使用mosquitto的过程中发现他不支持集群,所以就放弃了,转投emqttd。 在使用mosquitto过程中发现了一些问题: 在使用mosquitto时,如果想使用集群的话,可能会需要进行二次开发。目前只支持桥接。并且他在遍历时的效率非常低,使得他无法支持大量的客户端或者操作过于频繁的操作(比如十万或百万级别的客户端同时发送数据) emqttd有以下优点: 可靠传输。MQTT可以保证消息可靠安全的传输,并可以与企业应用简易集成。 消息推送。支持消息实时通知、丰富的推送内容、灵活的Pub-Sub以及消息存储和过滤。 低带宽、低耗能、低成本。占用移动应用程序带宽小,并且带宽利用率高,耗电量较少。 是中国人写的一个开源的项目,所以使用起来学习成本比较低,容易上手。 EMQ 2.0 (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 语言平台开发,支持大规模连接和分布式集群,发布订阅模式的开源 MQTT

Mqtt How a client can get to know that another client is connected or not

旧时模样 提交于 2019-11-29 18:12:07
Hello guys my problem is that I need to keep device(clients) status as they are online or not. I am connecting through a client id and from subscribing there will topic I can get to know that device is disconnected but if they connect again how can I check they connect again. The short answer is you don't (at a protocol level). Publishers and subscribers are totally unaware of each other, messages are sent to topics not to specific subscribing clients. The slightly longer version: You could do something with retained messages and LWT (Last Will & Testament) e.g. Each client publishes a

Read .db file in Mosquitto

偶尔善良 提交于 2019-11-29 11:05:38
I'm using Mosquitto Project (http://mosquitto.org), this is my mosquitto.conf persistence_file mosquitto.db persistence_location C:/var/lib/mosquitto/ After running, I have got mosquitto.db, but I can't open it. I'm trying open with Microsoft Excel, sqlitebrowser_200_b1_win but it's not working. Please help me. Thanks in advance I just answered this same question on the mosquitto answers tracker: https://answers.launchpad.net/mosquitto/+question/217523 The mosquitto.db file holds internal persistence information on client subscriptions and retained messages. It isn't intended for use outside

Windows环境下搭建MosQuitto服务器

拥有回忆 提交于 2019-11-29 08:10:49
Windows环境下搭建MosQuitto服务器 下载、安装MosQuitto服务器 首先在 DownLoad 界面,下载服务器源码,一种是根据源码下载,然后在本地通过Cygwin编译 Source ,另一种是直接下载官网提供的编译好的 Binary Installation 。 笔者在采用第一种源码安装的时候,遇到了一个问题,安装openssl后暂时仍未解决。 于是本文采用的是第二种方式,根据readme的提示,如果缺少 libeay32.dll,ssleay32.dll,pthreadVC2.dll 的话,可以根据提示安装对应的环境也可以直接下载相应的dll文件,笔者直接下载的单独的dll文件测试成功。 点击mosquitto-1.6.4-install-windows-x64.exe安装文件 启动服务器,DOS命令下,在安装路径下使用命令 mosquitto -c mosquitto.conf ,通过命令行运行,如果没有出现其他提示表示成功,此时我们可以自己发布、订阅消息来进行下面的测试了。 订阅与发布 通过 mosquitto_sub -v -t {topic} 来订阅Topic,其中 {topic} 就是订阅的主题。 通过 mosquitto_pub -t {topic} -m {message} 来发布消息,其中 {topic} 即发布的主题, {message}

Emqtt的ssl/tls加密

て烟熏妆下的殇ゞ 提交于 2019-11-29 07:43:11
继上个星期之后,这个星期有花了两三天的时间来搞emqtt的ssl/tls加密。 主流程还是参考了: https://blog.csdn.net/a704397849/article/details/88885198#commentsedit , 到最后一步用mosquitto_sub订阅消息的时候始终有问题: 联系了参考文章的作者,并且加了QQ,想不到是个很热情的人。他重新走了一下流程并且确定是没有问题的,给了我一份客户端的代码: package com.zkong.mqttssl; import org.eclipse.paho.client.mqttv3.*; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; import javax.net.SocketFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java

mosquitto MQTT broker and Java client with SSL / TLS

六眼飞鱼酱① 提交于 2019-11-28 22:10:10
I'm using mosquitto and the Eclipse PAHO Java client. Everything is working fine on plain TCP sockets. but now I want to use SSL for athentication (encryption not necessarily needed). first I followed the instructions from http://mosquitto.org/man/mosquitto-tls-7.html in mosquitto client I can not publish my message without the --insecure option, means i have to mosquitto_pub -h <server-ip> -p <port> -t "/topic1/test" -m "testmsg" --cafile ca_cert.pem --cert client.crt --key client_priv.key --tls-version tlsv1.2 --insecure otherwise an protocol error appears on the mosquitto console, which

MQTT介绍与使用

最后都变了- 提交于 2019-11-28 20:33:03
参考自: https://www.cnblogs.com/sxkgeek/p/9140180.html 目录 一、MQTT简介 二、特性 三、实现方式   四、MQTT的搭建(ubuntu) 五、MQTT权限配置 六、MQTT实现(Java语言) 正文   物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。其英文名称是:“Internet of things(IoT)”。顾名思义,物联网就是物物相连的互联网。这有两层意思:其一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;其二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信,也就是物物相息。物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。   而在物联网的应用上,对于信息传输,MQTT是一种再合适不过的协议工具了。 回到顶部 一、MQTT简介   MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级协议,该协议构建于TCP/IP协议之上,MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销

MQTT介绍与使用

◇◆丶佛笑我妖孽 提交于 2019-11-28 20:32:48
   物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。其英文名称是:“Internet of things(IoT)”。顾名思义,物联网就是物物相连的互联网。这有两层意思:其一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;其二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信,也就是物物相息。物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。   而在物联网的应用上,对于信息传输,MQTT是一种再合适不过的协议工具了。 一、MQTT简介   MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级协议,该协议构建于TCP/IP协议之上,MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。   MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M

使用openssl加密mqtt

时间秒杀一切 提交于 2019-11-28 19:57:25
昨天弄了一天,还没弄出结果,先做个记录,有空继续。 主参考: https://blog.csdn.net/a704397849/article/details/88885198 openssl概念,安装,使用: https://segmentfault.com/a/1190000014963014 https://blog.csdn.net/sunhuansheng/article/details/82218678 1)下载openssl: http://slproweb.com/products/Win32OpenSSL.html 2)根据系统属性,选择下载Win64 exe文件,双击安装之后,将安装路径配置到环境变量Path中: 3)启动一个cmd,输入openssl就能用了: 配置emqttd使用ssl: 编辑 emqttd安装目录下etc/emq.conf mosquitto的使用 : https://mosquitto.org/ 下载 双击安装之后,将安装路径添加到Path中 打开cmd就能使用mosquitto指令了。 来源: https://my.oschina.net/u/4042451/blog/3098868

Mosquitto 上建立到 EMQ X 的桥接

旧巷老猫 提交于 2019-11-28 19:43:43
EMQ X 节点可以被其他类型的 MQTT 消息中间件桥接,实现跨平台的消息订阅和发送。本文我们以一个配置实例来说明如何配置 Mosquitto 到 EMQ X 的桥接。 Mosquitto 是一个小型轻量的开源 MQTT Broker,由 C/C++ 语言编写。Mosquitto 采用单核心单线程架构,支持部署在资源有限的嵌入式设备,接入少量 MQTT 设备终端,并实现了 MQTT 5.0 和 3.1.1版本协议。 EMQ X 与 Mosquitto 均完整支持了 MQTT 协议特性,但 EMQ X 支持更多通信协议以及私有协议接入。应用层的功能拓展方面,Mosquitto 缺乏开箱即用的如认证鉴权、规则引擎、数据持久化与高性能消息桥接(EMQ X 企业版)等业务相关功能; 监控运维与可视化管理方面, EMQ X 有完整的现有功能和拓展方案支持;基础功能上 Mosquitto 集群功能羸弱,官方和第三方实现的集群方案均难以支撑物联网大规模海量连接的性能需求。 因此 Mosquitto 并不适合用来做规模化服务的 MQTT Broker,但由于其足够轻量精简,可以运行在任何低功率单片机包括嵌入式传感器、手机设备、嵌入式微处理器上,是物联网边缘消息接入较好的技术选型,结合其桥接功能可以实现消息的本地处理与云端透传。 场景描述 假设我们有一个 EMQ X 服务器集群 emqx1