美文网首页
小程序websocket推送消息Uint8Array/Array

小程序websocket推送消息Uint8Array/Array

作者: yichen_china | 来源:发表于2022-03-05 13:27 被阅读0次
    // 小程序中sendSocketMessage是支持ArrayBuffer的,我这个错误原因在于new Uint8Array不是ArrayBuffer,而是他的一个属性值才是arrayBuffer
    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)
        }
    });
    

    另外还一个问题就是真机小程序中不支持 new TextDecoder()对象,函数,解决办法:

    function decodeUTF8(arr) {
        var str = '';
        for (var i = 0; i < arr.length; i++) {
            str += String.fromCharCode(arr[i]);
        }
        return decodeURIComponent(escape(str));
    }
    
    console.log(decodeUTF8([230, 177, 137, 229, 173, 151]));
    

    以上两个问题都是微信开发者工具与真机环境不一致的锅。

    参考文章:

    Uint8Array 拷贝操作的坑(buffer)
    ie,TextDecoder.decode()函数不可用,fromCharCode输出中文乱码问题

    相关文章

      网友评论

          本文标题:小程序websocket推送消息Uint8Array/Array

          本文链接:https://www.haomeiwen.com/subject/xztbrrtx.html