这里,简单记录一下自己在最近项目中遇到的paho的心得,这里也涵盖EMQX的问题. 1. cleanSession 这个标识,是确保client和server之间是否持久化状态的一个标志,不管是client还是server重启还是连接断掉.下面是来自paho客户端源码的注释. Sets whether the client and server should remember state across restarts and reconnects. If set to false both t…
今天进行验证的逻辑是EMQ的http的Auth以及ACL的逻辑. 首先,参照HTTP插件认证配置的说明文档进行基本的配置, 我的配置内容如下: ##-------------------------------------------------------------------- ## HTTP Auth/ACL Plugin ##-------------------------------------------------------------------- ##----------…
1. 创建证书链(shell脚本) 客户端证书链关系: rootCA-->chainca1-->chainca2-->chainca3 ca caCert1 caCert2 caCert #!/bin/bash set -e dir=`pwd` root_key=$dir/rootCA.key root_crt=$dir/rootCA.crt echo "rootKey: $root_key, rootCrt: $root_crt" key_bits= expire_…
本博文的重点是尝试CoAP协议的应用开发,其中包含CoAP协议中一个重要的开源工具libcoap的安装和遇到的问题调研.当然,为了很好的将EMQ的CoAP协议网关用起来,也调研了下EMQ体系下,CoAP的使用逻辑, CoAP支持明文,也支持DTLS的安全传输. 首先,介绍下libcoap的环境准备,然后基于libcoap进行EMQ的CoAP协议支持的验证.我的环境信息如下: 1. Linux: 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UT…
openssl创建私钥,获取公钥,创建证书都是比较简单的,就几个指令,很快就可以搞定,之所以说简单,是因为证书里面的基本参数配置不需要我们组装,只需要将命令行里面需要的几个参数配置进去即可.但是呢,用java代码,原生创建证书,其实需要我们了解的内容就要稍微多点,去填充创建证书里面的所需要的参数,逐行填充. openssl证书的格式默认是PEM的,即Privacy Enhanced Mail,说白了,就是将创建后的证书元素数据经过Base64编码,然后添加类似----BEGIN CERTIFIC…
这篇帖子,不会过多解释X509证书的基础理论知识,也不会介绍太多SSL/TLS的基本信息,重点介绍如何用java实现SSL协议需要的X509规范的证书. 之前的博文,介绍过用openssl创建证书,并配合EMQ进行发布订阅的工作逻辑,基于openssl创建证书和秘钥,还算是比较简便的,然后,基于java创建证书的过程,就有些许的小不方便,能找到的公开资料并不是太多,看到的都是基于keytool指令进行构建的介绍,但是呢,这种方案,对于我们的物联网安全应用,似乎不是很和谐.于是,啃了一段时间的ja…
最近比较忙,有些关于EMQ的使用问题,没有时间记录了,趁这个周末抽点时间,将最近遇到的,觉得比较有价值的一个问题,分享给大家吧. 这里是针对前面的一篇博客,做的一个深入研究,关于订阅系统总线判断设备上线还是下线的补充研究.基于报文内容进行分析连接的细分信息,有一定的帮助. 1. 正常的连接 应用服务能够订阅到来自$SYS/brokers/+/clients/+/connected主题的数据.如下:这里能看到设备连接到那个EMQX节点,且知道设备端的配置信息,例如用户名,是否cleansessio…
EMQ版本V2, emqttd-centos7-v2.3.11-1.el7.centos.x86_64.rpm 下载地址:http://emqtt.com/downloads/2318/centos7-rpm 机器环境: Linux CentOS7.2 安装完成后,默认是匿名用户访问.emq本身不带发布定于工具或者命令,需要借助类似mosquitto_sub.mosquitto_pub或者自己写客户端进行连接测试.关于mosquitto的环境搭建,请参照mosquitto环境搭建 api的htt…
我的测试环境: Linux: CentOS7 EMQX:V3.2.3 题外话: 这里主要介绍Websocket的支持问题. 对ws的支持比较正常,但是对wss的支持,调了较长的时间,没有成功. JavaScript支持mqtt的工具有paho.mqtt.js和mqtt.js. 我这里为了研究wss,所以,重点采用的是mqtt.js.基于这两种工具包,ws的通信,我这里都很顺利的调通了,通信没有问题. 看代码: 因为paho.mqtt.js没有看到有支持SSL的地方(至少从库里面的配置参数上,没有…
issue 1. EMQX的共享订阅 EMQX是一个非常强大的物联网通信消息总线,基于EMQX开展应用开发,要注意很多配置细节问题,这里要说到的就是共享订阅以及和cleanSession之间的关系问题.共享订阅在EMQ的里程牌中出现的较早,V2的时候就已经提供了,只是那个时候只支持单节点的共享订阅,在V3的时候才支持集群的共享订阅. 共享订阅功能非常实用,解决了消费者应用程序的负载均衡问题,或者说高可用问题.否则,负载均衡或者高可用问题,需要借助于全局锁进行消息消费过程中的只消费一次的问题.这个…
基于上篇博文[SSL双向验证]的环境基础,进行消息的具体梳理. 环境基础信息: . 单台Linux CentOS7.2系统,安装一个EMQTTD的实例broker. . emq的版本2.3.11. . 客户端分为mosquitto_pub,以及MQTT.fx 1.7.1的subscriber. . 证书是通过openssl(version:1.0.2k-fips)生成的,rootCA是自签名的,subscriber和publisher的证书是通过rootCA签署的. . 抓包工具wireshar…
EMQ是当前MQTT中,用于物联网领域中比较出色的一个broker,今天我这里要记录和分享的是关于SSL安全通信的配置和注意细节. 环境: 1. 单台Linux CentOS7.2系统,安装一个EMQTTD的实例broker. 2. emq的版本2.3.11. 3. 客户端分为mosquitto_pub,以及MQTT.fx 1.7.1的subscriber. 4. 证书是通过openssl(version:1.0.2k-fips)生成的,rootCA是自签名的,subscriber和publis…
今天研究的内容,是CoAP这个协议在EMQ消息队列的支持,CoAP是一个受限资源的协议,基于UDP实现的多用于物联网环境的通信协议.相关介绍不多说,可以看RFC. CoAP协议下,基于DTLS通信,同样因为协议的产生背景原因,所以,对秘钥大小有有一些要求,尽量的小,所以ECC(椭圆曲线)秘钥算法成为了首先,比RSA秘钥短很多,但是加密安全强度不比RSA对应较长的秘钥安全性低.所以,EC加密算法研究成为了本博文的重点,另外,CoAP的证书中签名算法,也是有所限制的,用的是ECDSA,因为签名算法和…
EMQX功能强大,但是帮助信息或者可用资料的确有限,遇到个问题,比较难找到处理的头绪,今天,我要记录的是,使用中出现EMQX宕机,但是呢,启动也启动不了. 今天记录的内容,就以操作EMQX 3.2.3的版本来说吧. 你可能看到有下面的信息: [root@tkwh-kfcs-app3 emqx]# emqx start emqx v3.2.3 is started successfully! 但是呢,你查看状态,又会看到下面的内容: [root@tkwh-kfcs-app3 emqx]# emqx…
搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586.exe . 出现选择安装路径,可以根据需要更改安装路径.这里我们使用默认路径,直接下一步. 安装完成. 2.接下来配置环境变量 右键“我的电脑”->属性->“高级”选项卡 点击“环境变量” 我们要配置JAVA_HOME,PATH,CLASSPATH三项属性. 首先,配置 JAVA_HOME 找到我…
在命令行中运行eclipse中创建的java项目 博客分类: java相关 javaeclipse命令行  由于项目要求,需要对eclipse中的项目进行打包,似的可以在客户机上不装eclipse的情况下正常运行. 一.环境说明:    eclipse---3.5    jdk-------1.6.0.22    os--------xp,win7 二.解决方案详情:    1.项目不引用外部jar包,仅仅依赖于jdk相关jar包,则有两种解决方案      方案一.通过eclipse/myec…
需求:将Eclipse中现有的java类生成类图 一:什么是ModelGoon? 它是一个Eclipse插件,用于基于UML图的模型设计,以及逆向工程(即从已有源代码生成类图). 二:安装 下载ModelGoon-4.4.1-site.zip到电脑,从eclipse中选择help-->install new software.在work with-->Add选择已经下载的ModelGoon-4.4.1-site.zip,一路next完成安装. 在线安装:推荐在线安装,site地址是http:/…
前段时间出现了eclipse 不自动编译java文件的问题,在网上找了好长时间,总算把问题解决了,现在把这个问题的解决方法总结一下. 1,看看project -- Build Automatically有没有勾上?如果没有,勾上以后,clean一下,重启eclipse 2,看看你的lib里面有没有不用的jar包,看你的.classpath文件中有没有错误的路径. 3,这是最重要的一点,有problems视图中查看有没有关于本项目的错误信息,一般都会有这样的话: The project canno…
文章来自于:http://www.infoq.com/cn/news/2014/04/eclipse-kepler-support-java8 期待已久的Java 8已于2014年3月19日正式发布,而作为Java开发者使用最为广泛的IDE,Eclipse已经全面支持Java 8.Eclipse对Java 8 的支持包括编译器实现新的Java 8语言扩展.搜索和重构功能支持Java 8.Lambda表达式格式化以及Lambda表达式和匿名内部类之间的快捷互转. 获取Eclipse for Jav…
Maven项目下update maven后Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderL     严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.co…
Eclipse创建java web工程 eclipse版本:eclipse-jee-4.5-win32-x64 tomcat版本:apache-tomcat-7.0.63-windows-x64 jdk版本:jdk1.7 备注: 1.在创建web项目之前首先配置好jdk环境和tomcat环境(即在开发工具中添加tomcat服务器) 2.eclipse下载注意: eclispe不同版本下载地址:http://www.eclipse.org/downloads/eclipse-packages/Ja…
本章文章主要学习集成了maven插件的eclipse下,创建java project和web project的步骤. 创建java工程  第一步:使用使用maven project来创建java project 设置java project的本地工作空间 选择构件(maven-archetype-quickstart为java project工程的构件) 设置公司名称.项目名称.版本信息.包名称  第二步:修改工程的属性 设置java compiler版本(修改为1.8,与我本地安装的jdk版本…
利用eclipse+jdk1.8搭建Java开发环境 转载请声明出处:http://blog.csdn.net/u013067166/article/details/50267003 引言:eclipse是写Java程序最普遍的工具,我用了一年多了,用着非常方便舒适.越来越喜欢这个软件,以至于我写C/C++程序都使用Eclipse.写Android我也首选Eclipse,而不是Android Studio,由于Eclipse的方便快捷是非常难被其它软件所代替的.至少在如今我的感受是这样.废话不多…
eclipse无法解析导入 java.util是因为jre配置错误. 1.点击需要导入jar的项目,右击项目属性(properties),进入到如下图界面: 2.选择Java Build Path选项,然后选择右边红框内的jre,之后点击[edit],如图: 3.选择红色框内的“installed JREs...”,如下图: 配置完毕刷新一下workspace即可消除错误.…
http://hi.baidu.com/danghj/item/7625a1be20946e43ba0e1202在eclipse中使用中文JAVA api文档Sun 官方的中文版 Java API 文档发布了,地址为: http://gceclub.sun.com.cn/download/Java_Docs/html_zh_CN.zip  , 下载后请参考如下步骤配合 eclipse3.1 使用…
一次失败的尝试hdfs的java客户端编写(在linux下使用eclipse) 给centOS安装图形界面 GNOME桌面环境 https://blog.csdn.net/wh211212/article/details/52937299 在linux下安装eclipse开发hadoop的配置 file -> properties -> java build path -> add libiary -> user libiary 点击按钮 user libiary -> ne…
概述 Eclipse内嵌的webservice客户端,可用于发起请求,查看结果,展示请求和响应的报文. 详情 在Java EE视图,可以看到内嵌的webservice客户端浏览器登陆按钮 点击打开浏览器,按照图示依次点击,输入wsdl的url,点击go 在下图中点击add链接,会打开测试窗口 在下图中,输入参数,点击go,可以在Status窗口看到请求结果 为方便查看,双击Status标题栏,可以最大化/还原Status窗口:点击Source链接,可以查看请求/响应的报文 报文是xml格式的so…
严重: Exception starting filter struts2java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2.1.3以前版本和之后版本 struts2中StrutsPrepareAndExecuteFilter 异常如果是2.1.3之前的版本用org.apache.struts2.dispatcher.Filt…
Eclipse Java常用快捷键(Eclipse Shortcut Keys for Java Top10) 0.背景Eclipse作为Java的OpenSource开发IDE,已经是开发人员进行Java应用开发(不局限于)的首选,虽然还有很多其他的可选IDE,但是其他的工具要么是付费工具,比如IntelliJ,IBM Rational Application Developer(Eclipse+IBM Plugins),JBuilder等:或者功能不是十分的强大,比如一些中小型的集成开发工具…
java editor template Eclipse中的快速Java\JavaScript代码模板使用 学习了:http://technicalsearch.iteye.com/blog/2150040 用的是javascript的:但是不能输入#,不知道怎么转义:…