uinapp发送和处理二进制数据流
/**
* 将二进制数据流转为json
* @param {Object} buffer
*/
export function buffer_to_json(buffer) {
return JSON.parse(base64.decode(uni.arrayBufferToBase64(buffer)));
}
/**
* 将json转为二进制数据流
* @param {Object} string
*/
export function json_to_buffer(obj) {
return uni.base64ToArrayBuffer(base64.encode(JSON.stringify(obj)));
}
下面是一个websocket收发二进制数据流的例子
uni.connectSocket({
url: 'wss://' //ws地址
});
uni.onSocketOpen(function(res) {
console.log('WebSocket连接已打开!');
let data = {
id: '1',
name: '张三'
};
uni.sendSocketMessage({
data: json_to_buffer(data)
});
});
uni.onSocketClose(function(res) {
console.log('WebSocket 已关闭!');
});
uni.onSocketMessage(function(res) {
console.log('收到服务器内容:' + JSON.stringify(buffer_to_json(res.data)));
});
效果测试图: