5227关注16301浏览
大家好,本人求助一个可能比较弱智的问题。
我在cocosCreator上做了一个Websocket通信,用的是原生Websocket,并自己写服务器实现了所有需求的通信的功能。在网页上测试都没有问题。
移植到微信开发者工具上测试后,因为使用了微信的Websocket的api。发现服务器无法识别发送出去的信息了。(我发送的都是二进制数据)
我仔细检查后,发现:服务器收到的信息的后面大半部分的每一字节都完全一样,但是开头变了。
在客户端我确实是动了一个地方,原来发送的数据类型为UInt8Array。在微信开发者工具上被告知必须发送ArrayBuffer或者String。于是我把UInt8Array转化成了ArrayBuffer:
if ((typeof msg).toString() != "ArrayBuffer") {
var a = new ArrayBuffer();
for (var i in msg) {
a[i] = msg[i];
}
//发送a
}
转化出来的ArrayBuffer和原先的UInt8Array都是一模一样的。但是服务器收到后的信息开头就变了。
比如服务器建立连接,握手都没有问题。然后发送一模一样的两个消息给服务器
服务器显示原来的开头是正常的
130, 144, 74, 235, 177, 155, 66, 107, 170, 137, 79, 138, 194, 255, 57, 138, 171, 155, 104, 235, 153, 155, ...(相同的字节)
现在变成了错误的
130, 128, 133, 54, 99, 4, 72, 84, 84, 80, 47, 49, 46, 49, 13, 10, 72, 111, 115, 116, 58, 32, ...(相同的字节)
希望有高人提携。
-
至过去的我
2044人对此回答表示赞同
我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多> -
李美琳
16人对此回答表示赞同
if((typeofmsg).toString()!="ArrayBuffer"){
展开160回复分享发布于 6年前评论(0)
收起评论
-
Natalie
4人对此回答表示赞同
请问主指的创建ArrayBuffer的方式不对是什么意思,要怎样创建?
展开40回复分享发布于 6年前评论(0)
收起评论