creator1.7正式版,websocket在模拟器 android ios下都不正常

creator1.7正式版,websocket在模拟器、android、ios都不正常,creator是拿来逗开发者玩的?

描述问题都描述不清楚么?别逗我们好么?

2赞

这算是什么提问题的方式? 看样子你压根不想解决问题,而是来闹事的。

2赞

websocket都会用到Uint8Array,v1.7的String.fromChatCode.apply(null, array)报错
ERROR: RangeError: Maximum call stack size exceeded
之前在1.6.2正常,Uint8Array的问题,在1.7beta1也出现过

能提供更多的代码片段么?
你这个array是啥?

Uint8Array的问题参考一下:

http://forum.cocos.com/t/ccc-1-7-xmlhttprequest-arraybuffer/53649/3?u=dumganhar

不敢升级了,一直用1.6.1,虽然也有各种问题,这个网络问题比较致命.

我这个项目1.6.2正常
今天升级1.7.0, 安卓编译通过了 ,运行时候 出现一个错误


[ERROR] Failed to invoke SocketIO_emit, location: C:/fb/cxp/cocos/scripting/js-bindings/proj.android/…/manual/jsb_socketio.cpp:203

[ERROR] (C:/fb/cxp/cocos/scripting/js-bindings/proj.android/…/jswrapper/v8/Object.cpp, 447): Invoking function (0x7f4c64ece0) failed!

是不是跟Uint8Array有关?

最关键问题是 : 1.6.2 运行正常啊. 为毛1.7.0就报错了…



经过不断的设置console.log 找到了..  有个Undefine 没有处理,导致报错. 改了下暂时ok了. 

ps:研究了下原生调试, 没成功. 我继续研究.... 
问下 有知道这个 "使用 adb 命令转发调试端口:adb forward tcp:5086 tcp:5086"   在哪里输入的大大麻烦告诉下我..   转行过来. android从0开始. 走了不少弯路.

array是Uint8Array类型,然后这句就报错了
String.fromChatCode.apply(null, array)

跟Uint8Array没关系。
有没有具体的堆栈信息?

BB

你这个用法在chrome浏览器中试试?

是fromCharCode好么。。。。

纠正一下,是fromCharCode
具体什么错误,请把错误信息提交一下。
还有,是哪个平台的出错。

理论上这句应该是 String.fromCharCode.apply(String, array)
不应该传null

1赞

回贴的时候手误打错了,是String.fromCharCode.apply(null, array)
报错就是这个
ERROR: RangeError: Maximum call stack size exceeded

v1.6.2时,浏览器、模拟器、android、ios都正常
v1.7正式版,浏览器正常,模拟器报错,android、ios还没编译成功。。。

用这个 String.fromCharCode.apply(String, array) ,第一个参数传入String

这个问题解决了吗?

   // return String.fromCharCode.apply(null, array);
    return new TextDecoder("utf-8").decode(new Uint8Array(array));

改成这样就可以了,和websocket无关,堆栈溢出了。
@dumganhar @yelaixiang

TextDecoder 如何引入,安卓上提示找不到