项目里面用到了websocket,我写了个断线重连的方法。具体是把断线重连方法写道wx.onSocketClose和wx.onSocketError这两个方法里面,手机是iphone se,调试发现。当手机突然断网再重连时候会同时触发这两个方法,导致重连了两次。然后我把wx.onSocketError删掉了,是可以重连一次的。但是有什么更好的方法保证客户端什么时候都是只建立一个socket连接?(ps:手机锁屏,应用后台时候只会触发wx.onSocketClose)


展开全部
收起
2回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Xzavier

    19人对此回答表示赞同

    websocket可以当tcpsocket使用吗?

    展开
    19
    2回复
    发布于 5年前

    评论(2)

    收起评论

    • 白皓 2019-02-20 19:53

      恩谢谢

      回复
    • 白皓 2019-02-22 23:43

      不知道,没接触过tcpsocket

      回复
  • 龙猫

    13人对此回答表示赞同

    两个监听里都做个判断,是否在重连。进行重连的方法里写个布尔值,是否正在重连。

    展开
    13
    13回复
    发布于 5年前

    评论(13)

    收起评论

    • Jasper 2019-02-18 15:08

      非常感谢!

      回复
    • Bella 2019-02-20 08:40

      大概是这个意思啊,总觉得你哪里不小心写错了。。

      回复
    • Avery 2019-02-22 17:49

      大佬,你能不能给我写个demo,谢了!!!

      回复
    • 李大莉 2019-02-24 16:03

      重连成功后,应该允许重连呢,只有正在重连的时候,才不允许重连呀。重连成功的这个reConnectFlag=false应该放在重连方法的成功回调呢

      回复
    • 画心 2019-02-26 11:09

      默认值就是false,第一次重连时候!reConnectFlag=true进去条件进行重连,重连成功后reConnectFlag=true,!reConnectFlag=false也就不能重连了。

      回复
    • Grady陈三岁 2019-02-28 08:02

      reConnectFlag为true的时候,!reConnectFlag就是false,才不会进行重连呀?默认值应该设成false?我昏了头,还是你昏了头哦。。反正我觉得是你昏了头哈哈哈哈哈哈

      回复
    • 碳酸氢钠 2019-03-02 13:31

      没写反吧

      回复
    • Genesis 2019-03-04 17:53

      你貌似设反了。。。reConnect里,一进去,设成true,重连完成后,设成false

      回复
    • Aurora 2019-03-06 19:38

      这个逻辑有问题了,第一次断线重连是可以成功的,但是重连成功后reConnectFlag:true,第二次重连的时候会判断reConnectFlag,导致第二次不能连接

      回复
    • 左鹏 2019-03-08 21:40

      哇!这么怪!把console移到if判断里面去呢。。都进去了的吗

      回复
    • 树根 2019-03-10 15:43

      无效

      回复
    • Kat王淑仪 2019-03-12 09:54

      对啊。。无效吗?

      回复
    • Nathan 2019-03-14 08:11

      watchWebsocket(){

      回复
    加载更多
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部