收藏
回答

uni.onSocketMessage 返回是[object ArrayBuffer] ?

 //监听收到消息

      uni.onSocketMessage((res) => {

        console.log('收到服务器内容:' + res.data)

      })

长连接监听返回的数据是 收到服务器内容:[object ArrayBuffer] 

这个是什么情况呀

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

1 个回答

  • 风清雾云开见日出
    风清雾云开见日出
    10-07

    你直接打印你的res的值,看看res.data是什么类型的,转义下你想要的数据类型不就行了。

    10-07
    有用
    回复 3
    • azure sky
      azure sky
      10-07
      收到服务器内容:[object ArrayBuffer]
      返回的就是这个
      10-07
      回复
    • azure sky
      azure sky
      10-07回复azure sky
      let arrayBuffer = res.data // [object ArrayBuffer]
              // // 创建DataView对象
              let dataView = new DataView(arrayBuffer);
              // // 确定你需要的数据类型,例如如果原始内容是Uint8Array,可以这样做:
              let byteLength = arrayBuffer.byteLength;
              let byteArray = new Uint16Array(byteLength);
              // // 将ArrayBuffer的内容复制到新的ByteArray
              for (let i = 0; i < byteLength; i++) {
                  byteArray[i] = dataView.getUint8(i);
              }
              // byteArray现在就是你想要的数组形式
              console.log(;收到服务器内容:; + res.data, byteArray)
      能帮忙看下是这样转义的吗?
      10-07
      回复
    • 风清雾云开见日出
      风清雾云开见日出
      10-07回复azure sky
      arraybuffer转字符串的js方法随便百度不就有了
      10-07
      回复
登录 后发表内容