收藏
回答

websocket调用sendSocketMessage时报错

框架类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 wx.sendSocketMessage 客户端 Android 6.6.5 1.9.93

你想反馈一个 Bug 还是 提一个需求?

Bug

如果是 Bug:


* Bug 表现是什么?预期表现是什么?

在pc机开发工具上用websocket连接可以通信。但是在真手机上connectSocket,onSocketOpen都可以。但是sendSocketMessage时就会出unknown data的错误。


* 如何复现?


* 提供一个最简复现 Demo




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

5 个回答

  • 雪恋红尘
    雪恋红尘
    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
    有用 1
    回复
  • SinceJuly
    SinceJuly
    2021-08-08

    注意发送的data的值的类型真机好像只支持string/ArrayBuffer

    2021-08-08
    有用
    回复
  • 汤加
    汤加
    2021-07-13

    请问有解决吗?我也遇到了

    2021-07-13
    有用
    回复
  • ㅤ二柱子
    ㅤ二柱子
    2021-05-08

    有解决的吗?

    2021-05-08
    有用
    回复
  • Heisenberg
    Heisenberg
    2018-07-17

    有解决?我也遇到了

    2018-07-17
    有用
    回复
登录 后发表内容