美文网首页
换个姿势爬坑--android平台wss协议连接记录

换个姿势爬坑--android平台wss协议连接记录

作者: 晕车让我失去了大胆的想法 | 来源:发表于2018-08-14 20:37 被阅读413次

    掉坑之路

        最近小程序的热度一直不减(天两天官媒还报道小程序工厂哄抬物价来着^_^)。我们公司也不能落后啊,赶时髦上小程序yeyeye...

      不过呢,这次小程序除了要采用https协议与服务端通信之外,还要实现通过websocket连接MQTT收发消息的功能。起初呢...心里规划了一下,信誓旦旦、信心满满的撸起袖子准备干了,装证书、配端口、约定连接参数,正要见证奇迹发生的时候,突然就没有任何预感的掉坑里了---Android平台上小程序报证书错误....

    先把问题贴出来

    历险爬坑

       根据小程序连接报错信息来看,问题原因看起来很明显了,那就顺藤摸瓜的解决问题吧...

    首先说一下报错情况下的wss连接方式与服务架构模式:

    消息服务组件:emq

    因为emq本身提供了ssl及wss协议的支持,所以开始就用的emq的配置

    emq-ssl配置:

    emq-wss配置:

    由于小程序不能直接通过端口号与服务端通讯,所以添加了一层nginx代理

    小程序端连接方式为:wss://域名/mqtt

    看起来非常清晰简单,wss原理就是对https的协议的upgrade,可是就是不通....仔细观察考虑一下问题出在哪里呢,其实在这种模式下原因就出在对应的ssl代理端口与emq-wss端口的冲突。

    那么试着修改一下,

    emq-wss部分:

    nginx:

    修改之后再连接试一次,OK了!

    回头看坑

    问题解决后,不禁会思考问题的根本原因出在哪里,因为小程序的js爆出的是证书验证路径异常,初步猜测是跟Android平台的ssl连接机制有关系,待进一步考证确认。

    如有类似问题的小伙伴,欢迎留言一起探讨问题

    相关文章

      网友评论

          本文标题:换个姿势爬坑--android平台wss协议连接记录

          本文链接:https://www.haomeiwen.com/subject/smlbbftx.html