cocos creator protobuf 微信小程序遇到的坑
在cocos creator的开发中,经常需要使用websocket,进行长连接和服务器进行通信。常见的游戏有一般的棋牌,斗地主,跑得快等。
使用了一个封装了websocket的框架很长时间,一直都没有出过问题。不管是心跳,消息注册,消息的派发都没有问题。
一直以来发布的平台是打包app,Android平台,IOS平台,或者其他H5平台。直到昨天发布微信小程序平台。出现了问题。
遇到的问题
打包发布微信小程序后,模拟器上调试一直没有问题,知道发布预览版本,websocket连接上之后,发送的信息,服务器一直收不到。不知道怎么回事。从昨天下午,一直折腾到晚上。都没有解决,上网上各种查看资料。都没有解决。
直到遇到一个同事说:微信小程序的webscoket只支持string 和 arraybuffer。才发现问题。我这里websockeet发送出去的是Uint8Array。
同时网上也找到了同样的说法 https://blog.csdn.net/qq_31754591/article/details/130995991
解决办法
将微信小程序 websocket发送的地方将Uint8Array格式化为ArrayBuff就可以了。至此问题解决。
let sendData: Uint8Array = common.PackageMessage.encode(sp).finish();
this.socket.send(sendData);
修改为:
let sendData: Uint8Array = common.PackageMessage.encode(sp).finish();
//解决问题的一句 将Uint8Array格式的数据格式化为 ArrayBuffer就可以了。
let sendBuff = sendData.buffer.slice( sendData.byteOffset,sendData.byteLength + sendData.byteOffset);
this.socket.send(sendBuff);
本身从事上位及开发,主要使用技术wpf,C# winform。
联系方式
Tel:17320170935(微信同号-添加请备注微见-protobuf 微信小程序)
QQ:472198980 (添加请备注 微见-protobuf 微信小程序)
2024-04-30 15:29:41
user 阅读(217) 评论(0)
标签:cocos creator,protobuf,微信小程序,websocket,发送数据不成功
分类:cocos creator
很赞哦! (0)