关于WebSocket发送数据的一个bug

iphone ios平台
最近在写一个录音功能,需要发送音频数据给服务端。
当我把录音后的m4a文件读取成string(长度大概14万Bytes),用WebSocket发送给服务端的时候,WebSocket自动断开。
经单步跟踪调试,在SRWebSocket.mm文件第621行处:
dispatch_async(_workQueue, ^{
[self _sendFrameWithOpcode:SROpCodeTextFrame data:[string dataUsingEncoding:NSUTF8StringEncoding]];
});
有异常。
请问该如何解决WebSocket发送长String的问题呢?

经认真测试,当发送string小于3万Bytes的时候,可以正常发送,多于4万Bytes则WebSocket无法正常发送

这应该是creator下WebSocket的一个bug

creator 版本2.0.5

为啥把音频文件放自己服务器,上传和存储都要占用服务器资源。放第三方存储实例啊,比如阿里云的OSS。这样,每次录音上传后,只需要把音频地址给服务器就行了。

这关Creator啥事,明显是姿势不对嘛
WebSocket不是给你来传文件的,文件可以用HTTP POST发送给服务器

websocket有限制发送内容大小?老铁你尝试别在creator里试下websocket传输看看

他应该不是传文件 而是 直接传输字节

游戏里的长连接用来传文件怎么来说都是不合适的,就算是用arraybuffer传输字节

额。。在我看来,差不多。。都是建立在传输层上的协议 websocket不过是http的升级版本,用http post传输也好还是 weboscket传输也好 都okay, 支援传输的内容大小 使用者应该不需要担心。反正都是建立在tcp之上。
然后 现在这个老铁的问题是 传输时成功时失败。。

对的,

需要分包传输,一般单个包大小超过1024kb或者是2048kb的话是会有问题的,就算原生的socket也是这样

你说的有理,这也是我想说的。我现在的问题在于长数据传输失败问题

亲,你这个数据貌似不对的,我发送4万Bytes也就是大概39kb数据,依然发送失败,而我看cocos c++代码websocket是支持39kb以上数据的发送的,烦请写个范例测试下,这应该确实是个bug

只是39kb的数据的话没道理会失败,你弄个抓包工具看下,客户端是否确实是发送成功了。
我这边也验证一下,稍等

大神我想吧游戏和资源分开,我吧资源放在本地的文件夹里面。是不是要修改这里的路径来获取啊???就是一些大的资源我都放在本地存储,游戏里面都不放资源,而后打包。

你这段文字完全看不懂,什么游戏又什么资源,都看不懂你想干什么,别人怎么给你解决

就是正常来说我们开发的资源都是放在cocos里买那的Texture,resources文件夹里面的,动态加载,但是我想不放在这里,我想放在平台的本地文件夹里面,要怎么获取,我做好了游戏打包apk,然后是安装到安卓机顶盒上的,我想吧资源都先 用内存卡放到机顶盒的某个文件里面。

请大神帮忙看看

请新建帖子,这也是对楼主的尊重