我已实现连接恢复,并希望在测试周期内可靠地重新创建心跳超时(ping / pong响应超时)。发送者和接收者设备之间的心跳似乎是本地的? ---我能够创建足够的网络负载,以使我的所有其他应用程序超时。
我经常会出现间歇性的“DisconnectWithError”事件,但当我处于测试周期时,当然不够频繁。
也许我可以在wifi范围外散步或以编程方式断开然后调用我的错误路径(有这样的方法吗?deviceManager.disconnect不是这样的),但我希望有一个更“工程友好的外部控制“造成超时。有什么想法或经历吗?
在hb timeout期间记录:
13:17:01 myapp [2588]: - [GCKHeartbeatChannel heartbeatTimerDidFire] Ping out
13:17:01 myapp [2588]: - [GCKHeartbeatChannel inactivityTimerDidFire]发送的最大ping消息没有响应 - 触发失败消息!
13:17:01 myapp [2588]: - [GCKDeviceManager heartbeatChannelDidTimeout:]接收器未响应心跳,断开连接。
13:17:01 myapp [2588]: - [GCKCastSocket断开]断开连接
13:17:01 myapp [2588]: - [GCKCastSocket disconnect]等待写缓冲区耗尽
13:17:01 myapp [2588]: - [GCKCastSocket doTeardownWithError:] doTeardownWithError
13:17:01 myapp [2588]: - [GCKCastSocket doTeardownWithError:]通知委托,套接字已断开连接
13:17:01 myapp [2588]: - [GCKHeartbeatChannel didDisconnect]已断开连接 - 必要时停止心跳计时器
答案 0 :(得分:0)
我已经能够以编程方式导致断开连接的另一种方式是让另一台设备或模拟器尝试获取Chromecast连接,这会导致正在测试的应用程序获得断开连接事件。