首页 > 上网技巧 > 电脑小技巧 > 微信小程序arrayBuffer与java数据类型

微信小程序arrayBuffer与java数据类型

时间:2018-02-24 09:46 作者:QQ地带 我要评论

java Netty-socket
 
小程序websocket
 
在数据传输过程有很多方式, 如:文件、json、xml、Buffer、byte等等方式. 数据越小传输的数据也就越快. 但也越麻烦.
 
java数据类型.
 
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 前往查看
 
byte、short、int、long、float、double、boolean、char
 
arrayBuffer类型
 
Int8Array:8位有符号整数,长度1个字节。
Uint8Array:8位无符号整数,长度1个字节。
Int16Array:16位有符号整数,长度2个字节。
Uint16Array:16位无符号整数,长度2个字节。
Int32Array:32位有符号整数,长度4个字节。
Uint32Array:32位无符号整数,长度4个字节。
Float32Array:32位浮点数,长度4个字节。
Float64Array:64位浮点数,长度8个字节。
arrayBuffer与java数据类型对应
 
java arrayBuffer
byte Uint8Array
short Uint16Array
int Uint32Array
float Float32Array
double Float64Array
但看这个文章的时候, java的byte是有符号类型, 但是我设置为Int8Array的时候字节长对就不对.有大神清楚可以指证下.
 
小程序发送与解析arrayBuffer
 
发送
      var buffer = new ArrayBuffer(26);
      var obj = new DataView(buffer );
      obj.setUint8(0, 1);  //设置一个Uint8Array 在第0个位置, 值为1 十进制
      obj.setUint8(1, 0);
      obj.setUint16(2, 12);
      obj.setUint32(4, 2323);
      obj.setUint32(8, 0);
      obj.setUint32(12, 0);
      obj.setUint32(16, 0);
      obj.setUint32(20, 0);
      obj.setUint16(24, 3338);
解析
    wx.onSocketMessage(function (res) {
        var buffer = res.data;
        var dataview = new DataView(buffer);
        var ints = new Uint8Array(buffer.byteLength);
        var str = '';
        for (var i = 0; i < ints.length; i++) {
          str += String.fromCharCode(dataview.getUint8(i));
        }
        console.log(str);
    })

标签: 微信小程序
顶一下
(0)
0%
踩一下
(0)
0%

Google提供的广告