cocos creator 1.6.2没有修复websocket 无js delegate的奔溃问题

程序最小化后,如果打开微信玩一玩(玩久一点),或者打开youku看两分钟,再点开游戏就会闪退
使用xcode debug时,代码会定位到:
SocketIO.cpp的
void SIOClient::fireEvent(const std::string& eventName, const std::string& data)
{
CCLOGINFO(“SIOClient::fireEvent called with event name: %s and data: %s”, eventName.c_str(), data.c_str());

_delegate->fireEventToScript(this, eventName, data);

----这里的_delegate为null

这个问题在cocos creator 1.6.1时就有,看到1.6.2说有修复此问题,升级后仍无法解决。
log日志中会看到
JSB SocketIO::SIODelegate->fireEventToScript method called from native with name ‘disconnect’

貌似是这个方法执行了两遍,第2遍执行时就报错了。

增加 if(_delegate ==NULL){return ;}也是报错

反馈 Bug 时请提供

  • Creator 版本:1.6.2
  • 目标平台:android ios
  • 详细报错信息,包含调用堆栈:
  • 重现方式:程序最小化,打开youku 看两分钟
  • 之前哪个版本是正常的(可选):
  • 手机型号(可选):
  • 手机浏览器(可选):
  • 编辑器操作系统(可选):
  • 编辑器之前是否有其它报错(可选):

偶现 Bug 请提供

  • 出现概率:100%
  • 额外线索:(场景节点规模 / 项目资源规模等)

@dumganhar @panda 麻烦看看,谢谢。

能用最新的1.7beta8版本试一把么?因为1.7就快出来了,如果1.7解决了,那么就直接上1.7就好了。
如果1.7没解决,提供一个demo,我来解决。

老大,产品已经使用1.6.2发布了,现在使用1.7beta8风险太大了,有点怕。
您能提供一个解决思路吗?
因为我增加_delegate的非空判断,也会报错,报的还是
EXC_BAD_ACCESS的错误。

你的标题写的是WebSocket的问题,但是反馈的却是socketio的问题。。。。
要不你就提供一个1.6.2的复现demo出来吧。
还有,我只是希望你在1.7中构建,验证一把,也有助于我们确认是否1.7中已经修复了。这样也方便通过对比SocketIO相关的代码,快速定位到问题。