序言
传统的html网页, 其实更适合 http协议
目前的前后端分离架构,其实非常适合 websocket协议通信
所以有必要对websocket 深入研究
js websocket发送文本与二进制实验
- js 中 websocket .send () 可以发送 String | arraybuffer(二进制),
两种格式的数据, 不需要特殊处理,这个特点非常重要 - socket 通信在百度小程序中地址必须是合法域名, 局域网地址是受限的 ,否则无法发送
- 经过试验 发现 uni-app 在浏览器和andriod下
uni.sendSocketMessage() 同样可以发送两种格式
苹果和微信小程序没有测试
因为实验用到了一些内部函数 例如: bfun.json2Bytes(), _IS.isMap||_IS.isArray, 所以只是给出关键实验代码
// 发送
var msg = {er:"点对"}
let bs=bfun.json2Bytes(msg)
console.log(bs)
socket.send(bs);
msg.er="231245下次!@#%^&V";
let txt=JSON.stringify(msg)
socket.send(txt);
//接收
if (_IS.isString(data))
console.log("数据1",data);
else if(_IS.isMap||_IS.isArray)
console.log("数据2", bfun.bytes2Json(data) );