美文网首页
微信开发系列——遇到的坑及填补办法(持续更新,仅限于自己遇到和总

微信开发系列——遇到的坑及填补办法(持续更新,仅限于自己遇到和总

作者: 爆发吧小宇宙 | 来源:发表于2019-01-08 16:48 被阅读0次
    不同的花

    一、小程序中结合stomp.js和原生使用websocket 的总结

    1. 解决小程序认为两个socket,消息无法发送的问题

    websocket 连接断开,发起重连,连接时使用“ login”参数不一致,创建了两个不同的socket连接,微信小程序不允许同时连接两个,报错。郁闷的是官方说可以,但是实际不行,我没找到具体是为啥。所以最好在小程序中避免这种情况发生。
    自己主动关闭 websocket 连接,在关闭的方法里,需要重置client实体(比如 client = null),重新连接的时候用新的实体去初始化 stomp.js的实例。保证始终就一个连接存在,并且可以自动重连。

    2. 微信小程序在真机上,重连wx.connect 后onConnectMessage未调用

    我是用微信的接口结合stomp来接收消息。自己创建了一个变量来标识websocket是否连接,初始值为 false ,在重连完成后置为 true。
    微信小程序在真机上,重连连接wx.connect方法,连接成功,在这方法内success方法成功调用,但是监听连接成功的方法 onConnectMessage 未调用,之前在此监听方法里收到消息再更改消息工具类的状态,不能及时更新,所以每次重连,就会实际成功,但实例状态未更改导致获取连接状态为失败,心跳检测会一直进行重连,显示结果为“连接成功。。。正在重连”一直重复。其他发消息的状态也是根据是否连接的属性判断,由于标识为失败,其他消息也无法正常发送。
    后来将修改标识已连接状态的操作放在wx.connect的success回调中,解决了这个问题。

    二、 拿不到公众号token

    一般是因为IP地址不在白名单内。
    后台调用微信接口获取token的接口失败之后,把微信返回的错误提示找出来,一般情况下如果是ip不在白名单的话,微信返回的错误信息里面就有提示。改一下代码部署,如果微信接口返回错误信息,就打印到日志中,然后看日志出现的IP是什么,就把这个IP加到白名单。

    三、公众号的模板消息只能跳到线上正式版本的小程序

    四、小程序中使用webview需要对引用的第三方域名在微信后台验证,具体是将微信的校验文件放到第三方服务器中的指定位置。

    小程序web-view组件说明 微信公众平台后台管理-开发-业务域名设置

    *友情奉上
    stomp.js 的使用介绍: Using StompJs v5
    STOMP Over WebSocket

    相关文章

      网友评论

          本文标题:微信开发系列——遇到的坑及填补办法(持续更新,仅限于自己遇到和总

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