mqttfx连接emq_MQTT研究之EMQ:【EMQX使⽤中的⼀些芋圆是什么做的
问题记录(4)】
更年期焦虑症最近⽐较忙,有些关于EMQ的使⽤问题,没有时间记录了,趁这个周末抽点时间,将最近遇到的,觉得⽐较有价值的⼀个问题,分享给⼤
家吧。
这⾥是针对前⾯的⼀篇博客,做的⼀个深⼊研究,关于订阅系统总线判断设备上线还是下线的补充研究。基于报⽂内容进⾏分析连接的细分
信息,有⼀定的帮助。
1. 正常的连接
应⽤服务能够订阅到来⾃$SYS/brokers/+/clients/+/connected主题的数据。如下:这⾥能看到设备连接到那个EMQX节点,且知道设
备端的配置信息,例如⽤户名,是否cleanssion,clientId等等。这⾥有⼀个能反应出设备正常连接的状态字段connack,值为0表⽰正
常连接上了。
Qos : , Topic :$SYS/brokers/emqx@10.95.200.17/clients/res10/connected, ClientId: emqXmonitor
Sub :
{"clean_start":true,"clientid":"res10","connack":,"ipaddress":"10.95.177.137","keepalive":,"proto_name":"MQTT","proto_ver":,"ts":,"ur
当连接断开时(前提是连接正常的连接进来了,即$SYS/brokers/+/clients/+/connected的主题上进来的数据,对应connack的值为0),
订阅了$SYS/brokers/+/clients/+/disconnected主题的应⽤服务,会收到报⽂如下。这⾥会发现,报⽂内容显⽰了
clientId,urname以及断开的原因和具体时间点。这⾥重点要说的是reason字段。下⾯这个报⽂显⽰断开的原因是normal,即正常断
开,我这⾥是基于MQTT.fx模拟的客户端,点击了disconnect按钮实现的。
Qos : , Topic :$SYS/brokers/emqx@10.95.200.17/clients/res10/disconnected, ClientId: emqXmonitor
Sub : {"clientid":"res10","urname":"water","reason":"normal","ts":}筠怎么读音
Qos : , Topic :$SYS/brokers/emqx@10.95.200.17/clients/res10/connected, ClientId: emqXmonitor
Sub :
{"clean_start":true,"clientid":"res10","connack":,"ipaddress":"10.95.177.137","keepalive":,"proto_name":"MQTT","proto_ver":,"ts":,"ur
下⾯这个断开,就和上⾯那个disconnected的报⽂有点不同,主要是reason的内容不同,这⾥是clod,标识关闭。说明下,我这⾥是通
过点击MQTT.fx软件右上⾓的红⾊X实现的。
Qos : , Topic :$SYS/brokers/emqx@10.95.200.17/clients/res10/disconnected, ClientId: emqXmonitor
履行岗位职责Sub : {"clientid":"res10","urname":"shihuc","reason":"clod","ts":}
2. 不正常的连接黎明的号角
注意啦,注意啦,这⾥是connected主题上的报⽂,显⽰连接上来了,但是呢,看看connack字段的内容,不是0哟,说明这次连接不是正
常的。现象也的确是没有连接上来,因为我的mysql mqtt_ur表⾥⾯没有abc这个⽤户,MQTT.fx显⽰的连接失败的原因是未授权⽤户。
Qos : , Topic :$SYS/brokers/emqx@10.95.200.17/clients/res11/connected, ClientId: emqXmonitor
Sub :
{"clean_start":true,"clientid":"res11","connack":,"ipaddress":"10.95.177.137","keepalive":,"proto_name":"MQTT","proto_ver":,"ts":,"ur
下⾯这个connected消息,和上⾯的基本⼀样,下⾯这个是未授权⽤户(Not authorized to connect)对应的第⼆次connected报⽂。起
初,按照我的理解,这⾥应该是disconnected报⽂,但是给MQTT官⽅的github上项⽬提的issue显⽰,只有正常连接上线的设备,才会给
民主评议党员总结
他下发disconnected消息。否则只有connected消息,通过connack的内容进⾏细化区分。为何这⾥会出现两次connected的消息呢?从
paho的客户端是可以看得出信息的,⾸先会从默认的MQTT V4开始
Qos : , Topic :$SYS/brokers/emqx@10.95.200.17/clients/res11/connected, ClientId: emqXmonitor
Sub :
企业销售{"clean_start":true,"clientid":"res11","connack":,"ipaddress":"10.95.177.137","keepalive":,"proto_name":"MQIsdp","proto_ver":,"ts":,"u
3. 连接的状态的协议说明
这⾥主要涉及的就是CONNACK这个消息了,参照协议,就不难理解上⾯报⽂中的connack的信息了。
我这⾥⽤的协议版本是MQTT的V3.1.1, 所以呢,将⾥⾯的重点内容摘抄出来,⽅便查看。⼀个结论,connack不是0的时候,就要注意
是不是有什么问题了。
MQTT研究之EMQ:【CoAP协议应⽤开发】
本博⽂的重点是尝试CoAP协议的应⽤开发,其中包含CoAP协议中⼀个重要的开源⼯具libcoap的安装和遇到的问题调研.当然,为了很好的将
EMQ的CoAP协议⽹关⽤起来,也调研了下EMQ体系下,CoA ...
MQTT研究之EMQ:【EMQ之HTTP认证/访问控制】
今天进⾏验证的逻辑是EMQ的http的Auth以及ACL的逻辑. ⾸先,参照HTTP插件认证配置的说明⽂档进⾏基本的配置, 我的配置内容如下:
##-------------------------- ...
MQTT研究之EMQ:【JAVA代码构建X509证书【续集】】
openssl创建私钥,获取公钥,创建证书都是⽐较简单的,就⼏个指令,很快就可以搞定,之所以说简单,是因为证书⾥⾯的基本参数配置不需要我
们组装,只需要将命令⾏⾥⾯需要的⼏个参数配置进去即可.但是呢,⽤ ...
MQTT研究之EMQ:【SSL证书链验证】
1. 创建证书链(shell脚本) 客户端证书链关系: rootCA-->chainca1-->chainca2-->chainca3 ca caCert1 caCert2 caCe ...
和风送暖
MQTT研究之EMQ:【EMQX使⽤中的⼀些问题记录(1)】
issue 1. EMQX的共享订阅 EMQX是⼀个⾮常强⼤的物联⽹通信消息总线,基于EMQX开展应⽤开发,要注意很多配置细节问题,这⾥要说到
的就是共享订阅以及和cleanSession之间的关系问题 ...
MQTT研究之EMQ:【EMQX使⽤中的⼀些问题记录(2)】
我的测试环境: Linux: CentOS7 EMQX:V3.2.3 题外话: 这⾥主要介绍Websocket的⽀持问题. 对ws的⽀持⽐较正常,但是对wss的⽀持,调
了较长的时间,没有成功. Jav ...
MQTT研究之EMQ:【EMQX使⽤中的⼀些问题记录(3)】
EMQX功能强⼤,但是帮助信息或者可⽤资料的确有限,遇到个问题,⽐较难找到处理的头绪,今天,我要记录的是,使⽤中出现EMQX宕机,但是呢,
启动也启动不了. 今天记录的内容,就以操作EMQX 3.2.3 ...
MQTT研究之EMQ:【JAVA代码构建X509证书】
这篇帖⼦,不会过多解释X509证书的基础理论知识,也不会介绍太多SSL/TLS的基本信息,重点介绍如何⽤java实现SSL协议需要的X509规
范的证书. 之前的博⽂,介绍过⽤openssl创建证书,并 ...
MQTT研究之EMQ:【基础研究】
随机推荐
AppStore新应⽤上传指南
⽬录 [隐藏] 1 提交新应⽤前的准备⼯作 2 进⼊itunesconnect 3 提交新应⽤的信息 4 上传应⽤ 5 ⽤Ap
plication Loader上传应⽤ 6 上
传时出错的解决⽅案 6. ...
IOS中对象的归档
ios提供了两个类 NSKeyedArichiver NSKeyedUnarchiver对⾃定义对象进⾏归档 和解档操作 归档常见⽅法 - (void)encodeObject:
(id)objv fo ...
matrix矩阵求逆 与解⽅程模板 留做备⽤ (有bug,待补充)
// // main.cpp // 矩阵求逆 // // Created by 唐 锐 on 13-6-20. // Copyright (c) 2013年 唐 锐. All rights rer ...
【sqlrver】批量插⼊10万数据
DECLARE @LN VARCHAR(300),@MN VARCHAR(200),@FN VARCHAR(200)DECLARE @LN_N INT,@MN_N INT,@FN_N INTSET @ ...
_proto_理解
⼀个对象就是⼀个属性集合,并拥有⼀个独⽴的prototype(原型)对象.这个prototype可以是⼀个对象或 者null. ⼀个对象的prototype是以内部的[[Prototype]]属性来引 ...
aop 初探
1.⾸先是配置⽂件: 上图是让aop配置正确,不报红: 完整代码: <?xml version="1.0" encoding="UTF-8"?> & ...
springMVC初次搭建,产⽣错误
七⽉ 11, 2016 11:12:58 下午 org.apache.catalina.startup.VersionLoggerListener log 信息: Server version: Ap ...
简单⽰例:Spring4 整合 单个Redis服务
c+&plus;多线程——锁技巧
[转⾃]here 编写程序不容易,编写多线程的程序更不容易.相信编写过多线程的程序都应该有这样的⼀个痛苦过程,什么样的情况呢?朋友们应该看⼀下代码就明⽩了, void data_process() { ...