在遇到连接不稳定的情况下,我遇到了从iOS应用到我的API建立弹性连接的问题。理想情况下,我希望通过以下方式使连接尽可能具有弹性。重新发送对API的请求。
更具体地说:
处理这种“斑点连接”问题的合适算法方法是什么?似乎许多应用程序处理得很好,例如Discord上的语音频道或通过WhatsApp拨打电话。
我正在调查:
目标是尽可能地消除RTT。请求很小但应该快速通过,因为用户不必等待他们的响应。
很高兴知道其他人如何解决这个问题。
答案 0 :(得分:0)
用非常简单的术语来说:
VoIP应用程序通常倾向于UDP用于语音部分 - 这是因为速度/延迟很重要,偶尔丢包也不是一个大问题。
在必须不丢失任何数据包的情况下,例如建立VoIP呼叫的信令,TCP或其他检查和重传丢失数据包的协议通常是首选。
请注意,上述情况有例外 - 例如,TCP通常比UDP更好地遍历防火墙,由于出于交通策略原因的安全性,可能会阻止防火墙,因此有时可以通过TCP发送VoIP语音至少部分行程。
听起来TCP可能是满足您需求的良好候选者 - 还有其他协议,例如SCTP(https://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol),但我不确定它们通常可以更快地显示为通信类型你形容。