收藏
回答

webcoket 低版本android 高概率出现 code 1006

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug webocket 微信安卓客户端 8.0.33.2320 2.31.0

websocket 出现1006 错误

socket 链接成功之后,如果不发送消息 ,一切正常,中途不会断开,不会报错

前端调用 关闭之后 打印日历 code 1000,正常

后端向高频率前端推送时,高概率出现 code 1006,且与手机系统有部分关系

测试结果

测试机型,小米android 10,魅族 android 10,联想 android 12 ,华为android 10

android 12 小概率出现 1006,

android 11 无此版本机器 无测试结果

android 10,极高概率出现次问题

华为最高概率出现,系统为harmonyOs 2.0.0 android 10,下面给出的问题系统 就是这个华为系统,高概率复现

//正常系统

System: Android 12, WeChat 8.0.35.2340

Network: wifi

UA: Mozilla/5.0 (Linux; Android 12; Lenovo L71061 Build/SKQ1.211113.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/107.0.5304.141 Mobile Safari/537.36 XWEB/5043 MMWEBSDK/20230405 MMWEBID/6122 MicroMessenger/8.0.35.2340(0x28002313) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android

WeChatLib: 2.31.0 (2023.4.10 23:35:09)


//出现问题的系统

System: Android 10, WeChat 8.0.33.2320

Network: wifi

UA: Mozilla/5.0 (Linux; Android 10; YAL-AL50 Build/HUAWEIYAL-AL50; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/107.0.5304.141 Mobile Safari/537.36 XWEB/5043 MMWEBSDK/20230202 MMWEBID/7382 MicroMessenger/8.0.33.2320(0x28002151) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android

WeChatLib: 2.31.0 (2023.4.10 23:35:09)



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

2 个回答

  • Geefib
    Geefib
    2023-04-19

    +1我们最近也是突然websocket失败好多,官方最近是不是又在改造websocket了

    2023-04-19
    有用
    回复
  • 安稳先生
    安稳先生
    2023-04-17
    this.socketTask = await uni.connectSocket({
              url: this.$store.state.websocket_url,
              success: () => {
                console.log('链接成功!!!')
              }
            });
    this.socketTask.onClose((res) => {
              console.log("[socket关闭]: ",res);
              
              // this.initSocket();
            })
    this.socketTask.onOpen(() => {
              let room_id = this.roomRes.room_id;
              console.log('WebSocket连接已打开!', room_id);
              
              this.socketTask.send({
                data: JSON.stringify({
                  "type": "join_room",
                  "room_id": room_id,
                  "ack": 0
                }),
                success() {
                  console.log("加入房间成功");
                },
              });
            })
    this.socketTask.onError((err) => {
              console.log('socket错误,当断开连接',err)
              this.getRoomId();
            })
    
    this.socketTask.onMessage((msg) => {
              
              
              // console.log('[WebSocket:message]',msg);
              if (msg.data == '{"type":"ping"}') {
                
                this.socketTask.send({
                  data:'{"type": "pong"}',
                    success() {
                      console.log("传输心跳");
                    },
                })
                return
              }
              
              // console.log('[WebSocket:message]',msg);
              clearTimeout(timer)
              this.textareaText = ''
              
              //获取 socket 对象
              let msgObj = JSON.parse(JSON.parse(msg.data).body);
              let message = msgObj.text;
              let status = msgObj.status
              
              messageStr += message
              //拼接 
              ......
    
    beforeDestroy() {
          this.socketTask.close();
        },
            
            
    
    2023-04-17
    有用
    回复 1
    • 安稳先生
      安稳先生
      2023-04-17
      顶一下
      2023-04-17
      回复
登录 后发表内容