我一直在研究skypes协议,或者人们可以从它的专有协议中得到什么。我读过“对skype点对点互联网电话协议的分析”,虽然它已经陈旧,但它讨论了我想在我自己的架构中重新创建的某个属性。我感兴趣的是在视频会议期间,数据被发送到一台机器(最有可能具有最佳带宽和处理能力的机器),然后再将机器重新分配给其他机器。
未解释的是当接收和发送数据的机器意外退出时会发生什么。当然,不是放弃会议,最好找到另一台机器来继续接收和分发数据。是否有关于如何在Skype或类似的点对点VoIP上执行的文档?
基本上我正在寻找最快的方法来检测“超级同行”何时意外退出并快速将操作迁移到另一台机器。
答案 0 :(得分:1)
您需要设置超时(即限制)并声明如果您之后没有接收到通信,则通信已死(对等体之间没有路径,可达性问题)或远程对等体已关闭。没有其他方法。
如果您有直接tcp或其他连接到超级对等体,您可以捕获事件,告诉您连接也会死亡。如果您的通信被中继,并且您的框架自动尝试找到到目标对等方的新路由,它将找到一个或永远不会找到。因此,需要暂停。
如果一段时间内没有人听到某人,他们最终会被认为/宣布死亡。