大家好,本人求助一个可能比较弱智的问题。


我在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, ...(相同的字节)


希望有高人提携。

展开全部
收起
2回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • 李美琳

    16人对此回答表示赞同

    if((typeofmsg).toString()!="ArrayBuffer"){

    展开
    16
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Natalie

    4人对此回答表示赞同

    请问主指的创建ArrayBuffer的方式不对是什么意思,要怎样创建?

    展开
    4
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部