提前道歉,我不是802.11专家,这是一个冗长的问题......

我正在使用iOS voip客户端,我们使用Cocoaasyncsocket库进行TCP / UDP连接 . 允许app / iDevice漫游进出wifi覆盖范围(为了讨论的目的,我们假设应用程序仅使用wifi ...没有蜂窝连接) . 我们为backgroundmode(voip,audio)提供了适当的plist设置,并且需要持久的wifi .

我们遇到了Cisco AP特有的问题 . 随着客户端应用程序在前台并漫游到wifi范围,我们注意到最终iOS设备最终不会自动重新加入网络 . 经过大量的调试后,注意到重新加入的失败与应用程序无关 . 重新加入失败最终可以通过强制AP(通过配置)三次取消验证iDevice来重现 . 在第一次和第二次去认证后,iDevice会自动重新加入 . 但在第3次之后,iOS不会自动重新加入网络 .

例如,如果iOS电子邮件应用程序放在前台,则网络将重新加入 .

我们很好奇是否有任何其他VOIP类型的应用程序遇到了这个问题,并且在iOS设备上运行了FaceTime和Skype的实验 .

Skype表现得很像我们的voip应用程序,在第三次失败后,连接丢失了 . 尝试发起另一个呼叫导致发出“必须有互联网连接才能拨打电话”的消息 .

FaceTime确实在第三个deauth断开连接并且无法自动重新加入...但是,我们能够重新启动另一个FaceTime呼叫,这导致iOS重新加入网络并进行呼叫 .

我们想模仿FaceTime行为,但到目前为止还不明白我们应该采取哪些不同的做法 . 据我们所知,当我们断开连接时,我们正在正确关闭打开的套接字 . 是否有人熟悉此问题并提供一些见解?