zoukankan      html  css  js  c++  java
  • 102-STM32+BC26/260Y基本控制篇-加密通信-Android和BC26以SSL单向认证方式连接MQTT服务器(不验证服务器证书)

    <p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/ZLBC26AA/" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

    说明

    前面章节已经配置好了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,数据长度

    然后等待模组返回   >

    最后通过串口发送数据

    4.SSL连接MQTT服务器相关

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

    返回 > 发送真实数据

    5.正常发送数据先发送 AT+QSSLSEND=1,5,%d   然后再发送数据

    注:发送完 AT+QSSLSEND 设置了等待返回超时时间,目的是等待返回 >

    在串口里面收到 > 会清零超时,就能立即发送数据

    模块返回 > 清零超时.

    注意:发送完真实数据以后没有清零发送超时变量,而是设置了延迟时间为100ms.

    因为单片机把数据发送给模组以后模组大概需要60多ms才会真正的发出去.

    如果不等待一会直接再给模组发送数据,模组会报错!最后导致掉线.

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

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

    7.测试

     

  • 相关阅读:
    c++ readIntger writeIntger
    c++ string split function
    uniapp 创建简单的tabs
    c++ 获取和设置 窗口标题
    两种js数组去重的方法
    将jquery和公共样式缓存到localStorage,可以减少Http请求,从而优化页面加载时间
    H5 多个视频 循环播放效果
    使用iScroll时,input等不能输入内容的解决方法
    修改EsayUi 中 tree 的原有样式,变为according 之类的样式 ,且子菜单显示在右侧
    跨浏览器的事件对象-------EventUtil 中的方法及用法
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/14141928.html
Copyright © 2011-2022 走看看