收藏
回答

WebSocket老是断问题

启动小程序后创建的websocket在没有进入后台时老是自动关闭,时间间隔基本在3分钟内。返回的状态码是1006,描述是

abnormal closure。请问这是怎么回事呢?如何解决?

回答关注问题邀请回答
收藏

4 个回答

  • hexford~🐶
    hexford~🐶
    2019-02-01

    跟后台调试看看呢,感觉是服务器有问题

    2019-02-01
    有用
    回复 2
    • 开心就好
      开心就好
      2019-02-13

      后台开发说由前端发起的断开,但前端并没有做相应的断开操作,说明下程序是保持在前台状态,并非进入了后台状态。麻烦看看是什么原因导致的

      2019-02-13
      回复
    • 阿茶
      阿茶
      2023-06-26
      同样问题,多个mqtt链接会导致断开报错,由微信平台主动发起的断开websocket,微信开发工具内核版本是最新的
      2023-06-26
      回复
  • Geefib
    Geefib
    2019-02-15

    后端ngix改一下proxy_read_timeout

    2019-02-15
    有用 1
    回复 5
    • 开心就好
      开心就好
      2019-02-27

      好的,那试试了

      2019-02-27
      回复
    • 冰凌
      冰凌
      2020-07-02
      你好 问下这个proxy_read_timeout要设置多长时间呢
      2020-07-02
      回复
    • Geefib
      Geefib
      2020-07-02回复冰凌
      我们设了180s
      2020-07-02
      回复
    • 冰凌
      冰凌
      2020-07-02回复Geefib
      好的 谢谢
      2020-07-02
      回复
    • Geefib
      Geefib
      2020-07-02回复冰凌
      如果有用可以点一下我的回答有用哟谢谢
      2020-07-02
      1
      回复
  • 夏天的我
    夏天的我
    2019-02-12

    兄弟,解决了吗?我也遇到类似的问题

    https://developers.weixin.qq.com/community/minigame/doc/000ce8aac60bb89c9618d87205c800

    2019-02-12
    有用
    回复 7
    • 开心就好
      开心就好
      2019-02-12

      没有呢,只能是断了就重连了。

      2019-02-12
      回复
    • Geefib
      Geefib
      2019-02-15

      https://blog.csdn.net/oqqYuan1234567890/article/details/70285866

      2019-02-15
      回复
    • 开心就好
      开心就好
      2019-02-27回复Geefib

      你解决了?

      2019-02-27
      回复
    • Geefib
      Geefib
      2019-02-27回复开心就好

      解决了,你每30秒给后台发一条心跳,让后台不要处理这条消息就OK了。感觉是微信为了节省资源,ws3分钟没通讯就会关闭

      2019-02-27
      回复
    • Geefib
      Geefib
      2019-02-27

      还有注意ws协议版本前后端保持一致

      2019-02-27
      回复
    查看更多(2)
  • 是小白啊
    是小白啊
    2019-01-31

    麻烦提供下代码片段:https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-01-31
    有用
    回复 3
    • 开心就好
      开心就好
      2019-01-31


      App({
        onLaunch: function () {
          this.startSocket();
        },
        startSocket:function(){
          var time=0,soc = wx.connectSocket({
            url: '',
            header: {
              'content-type': 'application/json'
            },
            complete: function (e) {
              console.log('启动websocket', e);
              time = Date.now();
            }
          });
          soc.onOpen(function (e) {
            console.log('websocket连接正常');
          })
          soc.onMessage(function (data) {
            console.log('收到信息', data);
          })
          soc.onClose(function (e) {
            console.log('socket关闭', e);
            console.log('socket间隔时长', (Date.now() - time) + 'ms');
          })
          soc.onError(function (e) {
            console.log('socket出错', e);
          });
        }
      })


      2019-01-31
      回复
    • 开心就好
      开心就好
      2019-01-31回复开心就好

      这次的时间间隔更短了

      2019-01-31
      回复
    • 开心就好
      开心就好
      2019-01-31回复开心就好

      这次实现重连

      2019-01-31
      回复
登录 后发表内容