收藏
回答

uniapp小程序sendSocketMessage:fail invalid data type?

微信小程序模拟器 websocket 连接成功,PC模拟器收发消息都正常。手机真机也连接成功,发消息(消息是 protobuf 格式进行消息解码编码)就报错:errMsg: "sendSocketMessage:fail invalid data type",这种属于什么错误?该如何处理?

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

2 个回答

  • 物以C为贵
    物以C为贵
    2023-01-29

    已解决:

    2023-01-29
    有用 1
    回复
  • 雪恋红尘
    雪恋红尘
    2024-12-28

    这个问题通过网上的资料查询找到解决办法了,出现这个问题的原因在于对二进制数据操作的不了解,下面提供解决办法。

    // 小程序中sendSocketMessage是支持ArrayBuffer的,我这个错误原因在于new Uint8Array不是ArrayBuffer,而是他的一个属性值才是arrayBuffer,在发送数据时要调用下.buffer
    var init8arr = new Uint8Array([1,0,2,0,1]);
    wx.sendSocketMessage({
        data: init8arr.buffer,
        success:function(e){
             console.log(e)
        },
        fail:function(e){
             console.log(e)
        },
        complete:function(e){
             console.log(e)
        }
    });
    

    是微信开发者工具与真机环境不一致的锅

    2024-12-28
    有用
    回复
登录 后发表内容