大家好,本人求助一个可能比较弱智的问题。如何插入公众号文章的链接#微信小程序开发教程。
我在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, ...(相同的字节)
希望有高人提携。
微信小程序开发问题解答 本文来自微信小程序工厂 http://www.xcxgc.com,转载请保留。
微信小程序开发者回答:
A***:
我自己发现了,是创建ArrayBuffer的方式不对,导致这个ArrayBuffer的内部属性不对,比如长度。
其实不用都创建,只要用UInt8Array.buffer就行了。
本文网址:http://www.91bianli.com/weixinxiaochengxu/30991.html