Egret社区
产品 Egret Wing 版本 3.2.3
复现概率 100% 平台 iOS 10.0.2
复现步骤 打开附近中的项目,然后用局域网在iOS中微信打开链接,关闭手机的网络会发现尝试重新链接的方法只执行了两次,在其他平台可以一直执行下去
问题描述 断网的情况下,在egret.Event.CLOSE监听方法中尝试再次连接socket,安卓情况下没有问题,但是iOS中egret.Event.CLOSE的监听方法只执行两次,之后就不再执行了。socket用的是egret.Websocket
错误代码 private onGameSocketClose(event: egret.Event): void {
console.info("gamesocket--->close");
this.gameSocketRetryTime++;
// if (this.gameSocketRetryTime < 4) {
var time = new egret.Timer(1000);
time.addEventListener(egret.TimerEvent.TIMER, (evt: egret.Event) => {
this.label.text = \\\\\\\\\\\\\\\'第\\\\\\\\\\\\\\\' + this.gameSocketRetryTime + \\\\\\\\\\\\\\\'次连接socket\\\\\\\\\\\\\\\';
this.connGameSocket();
time.stop();
}, this);
time.start();
// } else {
// this.gameSocketRetryTime = 0;
// }
}
BUG截图
本帖最后由 乐观的见鬼了 于 2017-7-12 13:59 编辑


socketTest.rar

396.06 KB, 下载次数: 4, 下载积分: 银子 -1

分享到 :
1 人收藏

4 个回复

倒序浏览
乐观的见鬼了  初窥堂奥 | 2017-7-12 14:30:35
自己回答一下,iOS里面需要重新new一个新的socket实例。之前也猜测可能是这个原因,但是在外层加了个判断socket是否为null,所以依旧没成功
495707690  登堂入室 | 2017-7-24 18:58:40
乐观的见鬼了 发表于 2017-7-12 14:30
自己回答一下,iOS里面需要重新new一个新的socket实例。之前也猜测可能是这个原因,但是在外层加了个判断so ...

这样做,重连会建立很多实例吧? 不太合适吧
乐观的见鬼了  初窥堂奥 | 2017-7-25 09:49:56
495707690 发表于 2017-7-24 18:58
这样做,重连会建立很多实例吧? 不太合适吧

不然怎么办呢。。。 不过断线重连的情况不多吧?而且我把socket实例设为属性,重复的是创建对象的过程
495707690  登堂入室 | 2017-7-25 17:12:52
乐观的见鬼了 发表于 2017-7-25 09:49
不然怎么办呢。。。 不过断线重连的情况不多吧?而且我把socket实例设为属性,重复的是创建对象的过程 ...

哎 我就惨了,好几种业务类型的socket..  要重新创建好几个
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部