今天在调研互动白板的功能,顺便把以前发现的二进制socket消息研究了下,以往的socket消息 都是明文的,有的我发现是二进制的,有时候则是明文字符
function sendBinMessage(msg){
let _str =JSON.stringify(msg)
let str = _str.split('')
let arr = [num]
str.forEach(function(item, index){
if(index%num == 0) {
arr.push(lm[parseInt(Math.random() * lm.length)]);
}
arr.push(item);
})
str = arr.join('');
const array = new Uint8ClampedArray(str.length);
for (var i = 0; i<str.length; ++i) {
array[i] = str.charCodeAt(i);
}
ws.send(array);
}
单纯是为了调研而已,这里请教大家几个问题:
1、上图中详细信息完全没有可读性,这种是怎么个情况;
2、明文和二进制之间转换数据大小有变化吗?
3、性能的区别?
扩展阅读 protobufjs ,制定数据模
//demo.proto
package demo;
message helloworld
{
required int32 id = 1;
required string str = 2;
optional int32 opt = 3;
}
嵌套数据
const p = require('protobufjs')
p.load('./proto/demo.proto', function(err,root){
const hello = root.lookupType("demo.helloworld");
const msg = {
id:1,
str: 'ajldjflasdf',
opt: 123
}
var err = hello.verify(msg);
console.log(err);
var message = hello.create(msg);
var buffer = hello.encode(message).finish();
console.log(buffer)
})