单片机学习小组
直播中

李郝荫

7年用户 1306经验值
私信 关注

Android程序是怎样通过SSL单向认证方式连接MQTT服务器的

如何对Android程序进行测试呢?
Android程序是怎样通过SSL单向认证方式连接MQTT服务器的?

回帖(1)

姜钰

2022-1-20 10:06:45
说明

前面章节已经配置好了MQTT服务器SSL单向认证.
这节测试一下Android程序以SSL单向认证方式连接MQTT服务器

提示:所谓SSL单向认证通信,就是在客户端连接上TCP服务器以后
TCP服务器向客户端发送服务器的证书文件数据,然后客户端可以解析证书文件
也可以不解析证书文件,然后二者通过TCP通信再商议好对称加密通信的秘钥
最后二者TCP通信全部使用对称加密把数据加密再进行传输.

Android程序说明(不验证服务器证书)

默认提供的整体测试源码支持SSL(不验证服务器证书)
1.使用Android Studio打开整体运行测试里面的APP源码
注:需要把源码放到非中文目录才可以打开


2.只需要把端口号改为SSL的端口号,然后把useSSL设置为true即可


单片机程序说明(不验证服务器证书)

提示:详细请参考BC26资料里面的


1.打开这节的单片机程序


2.端口号改为了MQTT的SSL端口


3.提示
连接成功以后,如果要发数据,需要先通过串口发送
AT+QSSLSEND=1,5,数据长度rn
然后等待模组返回   >
最后通过串口发送数据

4.SSL连接MQTT服务器相关


打包MQTT连接协议数据并发送 AT+QSSLSEND=1,5,数据长度rn

返回 > 发送真实数据


5.正常发送数据先发送 AT+QSSLSEND=1,5,%drn  然后再发送数据
注:发送完 AT+QSSLSEND 设置了等待返回超时时间,目的是等待返回 >
在串口里面收到 > 会清零超时,就能立即发送数据


模块返回 > 清零超时.


注意:发送完真实数据以后没有清零发送超时变量,而是设置了延迟时间为100ms.
因为单片机把数据发送给模组以后模组大概需要60多ms才会真正的发出去.
如果不等待一会直接再给模组发送数据,模组会报错!最后导致掉线.


注:以上设置的时间不会对主循环造成影响,只是控制了从缓存里面提取数据的时间.

6.SSL指令,接收数据的指令有些不一样,修改了下.


7.测试
举报

更多回帖

发帖
×
20
完善资料,
赚取积分