mqtt-mosquitto
文章平均质量分 91
逍遥子_
重点关注大并发处理、分布式计算、微服务、物联网、大数据等领域
展开
-
mosquitto源码分析(二)
一、 Mosquito的数据结构1) struct mosquito结构体struct mosquito主要用于保存一个客户端连接的所有信息,例如用户名、密码、用户ID、向该客户端发送的消息等,其定义为:struct mosquitto { int sock; char*address; char *id; char*username; ch原创 2014-03-18 15:24:27 · 12169 阅读 · 3 评论 -
使用 logrotate对centos中各服务程序的日志文件进行转储
1.mosquitto的日志输出方式简介mosquitto是一个纯C的代码,它的日志输出支持若干中日志输出方式,通过修改配置项:log_dest即可完成对各种日志输出类型的切换,常见的日志输出类型有有下几种:(1)控制台输出stdout、stderrrlog_dest stderr(2)输出到日志文档log_dest file /home/logs/mosquitto/mosquitto.log【原创 2017-05-23 18:40:03 · 4320 阅读 · 0 评论 -
mosquitto鉴权插件的开发与说明(一)
1. mosquitto的插件的接口在文件mosquitto_plugin.h中进行了声明,在创建自己的鉴权插件代码中必须包含头文件mosquitto_plugin.h,并且实现该头文件中声明的所有鉴权接口函数(接口函数mosquitto_log_printf除外)。2. mosquitto插件的权限校验方式由头文件mosquitto_plugin.h中声明的接口函数所限制,共原创 2017-08-02 17:54:59 · 8375 阅读 · 2 评论 -
Mosquito的优化——epoll优化(七)
原版的mosquito在移动互联网情况下,其性能不高,实际运营时一个mosquito实例能支持2万连接就不错了;mosquitto在网络状态不好的情况下,随着用户量的上升,其对cpu消耗将大幅增加,主要的CPU主要消耗在以下几个方面:(1)Poll机制的缺陷;(2)Mosquitto内部订阅树机制的缺陷;(3)其他消息发送,数据结构管理方面的缺陷;本节将针对这些缺陷提出相应的优化策原创 2015-06-08 15:44:59 · 10452 阅读 · 12 评论 -
ip别名及其在tcp压力测试时候的作用
通常在对服务器程序进行压力测试时,需要客户端模拟大量的tcp连接,以对服务器端产生强大的压力,但是由于linux端口号的限制,每个客户端ip顶多能发起6.4w左右的连接,详情可参考:http://blog.csdn.net/houjixin/article/details/18737881或者:http://houjixin.blog.163.com/blog/static/35628410201...原创 2015-07-31 17:03:43 · 2204 阅读 · 1 评论 -
mosquitto的多端口机制及其使用
欢迎加入QQ群:221779856,国内最活跃的Mosquitto沟通社区,关于MQTT、Mosquitto、IM、推送系统、物联网、高并发处理等技术。一、mosquitto多端口机制的说明mosquitto的多端口机制是指它能够同时监听多个端口,通过配置文件“mosquitto.conf”可以看到它默认的监听端口的配置参数是port,而其他扩展监听端口的配置使用参数:listener,并...原创 2018-11-26 14:02:47 · 13809 阅读 · 0 评论 -
开启Mosquitto系统topic功能
mosquitto的系统topic主要是以$SYS开头的topic,这些topic只能mosquitto自己发送,客户端只能订阅,无法发送;mosquitto的系统topic主要用于mosquitto对外发布一些自身状态的消息,例如当前客户端连接数量等等,如下所示:当前mosquitto维持的客户端数量:$SYS/broker/clients/total当前mosquitto维护的活跃的客...原创 2019-02-20 11:32:36 · 5873 阅读 · 0 评论 -
Mosquitto感知客户端上下线的方法
欢迎加入QQ群:221779856,国内最活跃的Mosquitto沟通社区,关于MQTT、Mosquitto、IM、推送系统、物联网、高并发处理等技术。需要让设备上mqtt客户端配合来完成。1、怎么知道设备下线?异常断线(Mosquitto没有收到MQTT 的DISCONNECT报文)时,使用遗嘱机制,mqtt客户端在建立mqtt连接的时候,设置遗嘱(向什么topic发送什么数据...原创 2019-03-20 10:26:12 · 11950 阅读 · 0 评论 -
如何让Mosquitto动态加载配置文件
欢迎加入QQ群:221779856,国内最活跃的Mosquitto沟通社区,关于MQTT、Mosquitto、IM、推送系统、物联网、高并发处理等技术。Mosquitto的动态加载配置文件目前只有支持SIGHUP信号的linux系统支持(可使用Kill命令发送);其内部实现原理如下:在源代文件src/mosquitto.c代码里,自定义了针对SIGHUP信号的处理函数handle...原创 2019-03-20 10:45:05 · 1933 阅读 · 1 评论 -
mosquitto源码分析(一)
本文由逍遥子撰写,转发请标注原址:http://blog.csdn.net/houjixin/article/details/21461225一、 Mosquitto简介mosquitto是一款实现了消息推送协议MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,例如现在应用广泛的低功耗传感器,手原创 2014-03-18 15:22:26 · 25114 阅读 · 2 评论 -
Mosquito使用SSL/TLS进行安全通信时的使用方法
1、 SSL简介SSL(SecureSocket Layer)安全套接层,是网景公司提出的用于保证Server与client之间安全通信的一种协议,该协议位于TCP/IP协议与各应用层协议之间,即SSL独立于各应用层协议,因此各应用层协议可以透明地调用SSL来保证自身传输的安全性,SSL与TCP/IP协议及其其他应用层协议之间的关系如图1所示。 图1 SSL/TLS协议与应用层原创 2014-04-22 13:55:14 · 32451 阅读 · 3 评论 -
Windows下openssl的下载安装和使用
安装openssl有两种方式,第一种直接下载安装包,装上就可运行;第二种可以自己下载源码,自己编译。下面对两种方式均进行详细描述。一、下载和安装openss方法一:直接使用openssl安装包Window 的openssl的安装包的下载地址为:http://slproweb.com/products/Win32OpenSSL.html一般在安装openssl之前还需要vs的一些原创 2014-05-14 15:57:22 · 141641 阅读 · 4 评论 -
java版mosquitto客户端使用SSL功能的具体操作总结
在开发java版mosquitto客户端程序时需要使用paho库,如果开发的java客户端要用ssl功能,则需要Bouncy Castle库;在使用ssl功能时,需要证书文件进行进行身份认证,但在测试过程中,只自己制作ca并进行证书签发即可。在测试过程中首先创建一个统一的ca,该ca包括一个crt文件,一个key文件(例如ca.crt、ca.key);测试过程中,要使用该ca为每个测试的机原创 2015-06-01 10:05:42 · 5197 阅读 · 2 评论 -
mosquitto源码分析(六)
一、 Mosquito的辅助功能介绍Mosquitto代码的辅助功能主要包括:log输出功能、配置参数管理功能和内存封装的功能,这三个功能虽不是mosquitto的核心模块,但是却在其源码实现中经常遇到,它们的实现给mosquitto的代码开发带来了很大的方便。4.1、log输出功能Mosquitto日志输出功能的实现代码主要在文件/ mosquitto-1.2/src/loggin原创 2014-03-18 16:04:53 · 8032 阅读 · 4 评论 -
mosquitto源码分析(四)
3.1.2、使用订阅树发布消息在Mosquito程序中,消息发送过程主要通过遍历订阅树来完成,具体为:递归遍历订阅树找到指定的订阅列表,并将消息挂到订阅列表中的每个contextg的消息队列中,如果消息的retain字段被设置为1,则mosquitto还需要保存此消息,以备新订阅的客户端可以立即收到上次发送的消息;另外,发往系统topic的消息也会被mosquitto保存起来。上述消息发送过程原创 2014-03-18 15:52:28 · 9933 阅读 · 4 评论 -
mosquitto源码分析(五)
3.2.1、poll机制简介Poll机制是一种I/O多路转接(I/O multiplexing)技术,这种技术先构造一个有关描述符的表,然后调用一个函数,知道这些描述符中的一个已准备就绪好进行I/O时,该函数才返回,该函数返回之后它告诉进程那些描述符已经准备好进行I/O)。其工作过程为:(1)首先构造一个pollfd结构数组,每个数组元素指定一个描述符编号以及对其所关心的状态。(2)为原创 2014-03-18 16:02:52 · 9272 阅读 · 5 评论 -
Mosquito的优化——订阅树优化(八)
8.1 mosquitto的订阅树机制在mosquitto原始版本中,所有的订阅关系都是通过一颗订阅树来维护,在订阅树中,topic将被按照“/”组织成树状结构,如图5-3所示的订阅树,其中订阅树的每个节点都是一个topic分级,每个节点对应的topic就是从根节点到当前节点所组成的topic,每个节点旁边的星状列表即是该节点所对应的订阅列表。图8-1 订阅树在mosqu原创 2015-06-08 15:57:08 · 7804 阅读 · 6 评论 -
Mosquito的优化——其他优化(九)
9.1、空闲空间管理机制优化Mosquito原始版本程序中,有新的连接进来时,需要扫描整个context,查找一个空闲的位置以存放新连接产生的context,如果找不到空闲位置,则使用realloc再扩充一个context的位置。这种操作方式有两点非常低效:1) 扫描context,每次有新连接进来的时候都要扫描context数组以查找一个空闲的context位置;2) 当前con原创 2015-06-08 16:03:26 · 4844 阅读 · 2 评论 -
mosquitto常见问题及其解决办法
问题一:问题描述:在centos7上编译mosquitto源码时,出现以下问题:make[1]: 进入目录“/home/jason/mosquitto-1.2/man”xsltproc mosquitto.8.xmlwarning: failed to load external entity "/usr/share/xml/docbook/stylesheet/docbook...原创 2015-07-01 16:24:11 · 47817 阅读 · 4 评论 -
Mosquitto安装及使用简介
1、源码下载:(1)官方源码下载:http://mosquitto.org/files/source/(2)性能优化版源码下载:https://github.com/houjixin/mosquitto-1.4.11-opt(3)性能优化版优化方案:https://blog.csdn.net/hjx_1000/column/info/mqtt2、编译解压下载的压缩包后会生...原创 2019-08-20 12:19:36 · 4768 阅读 · 0 评论