2017-04-03 138 views
0

我遇到了問題,建立從我的iOS應用程序到我的API彈性連接的情況下,斑點連接。理想情況下,我希望通過例如連接方式使連接儘可能有彈性。重新發送請求到API。使點點滴滴的連接手機API更具韌性

更具體地說:

  • 交通運輸是使用HTTPS
  • 響應基於JSON,通常只有幾KB
  • API是在Heroku

託管什麼是合適的算法處理這種「斑點連接」問題的方法?看來很多應用程序處理得很好,例如Discord上的語音頻道或通過WhatsApp撥打電話。

我目前正在研究:

  • 取消並重新發送請求
  • 「熱身」,通過保活長輪詢作爲初始密碼握手HTTPS連接顯得相當沉重
  • 發送多個並行請求

目標是儘可能地消除RTT。請求很小,但應該快速通過,因爲用戶不必等待他們的迴應。

很高興知道其他人如何解決這個問題。

回答

0

簡單來說:

  • TCP/IP是面向連接的 - 它建立端到端連接,並能夠可靠的傳輸,但是可靠性是以犧牲更多的開銷
  • UDP/IP的代價是無連接的 - 它不建立端到端提前連接或檢查收到發送的數據,因此可以不太可靠,但它是速度快,低開銷

的VoIP應用程式普遍青睞UDP的語音部分的情況 - 這是因爲spe ed /延遲很重要,偶爾丟包不是什麼大問題。

在不丟失任何分組的情況下(例如建立VoIP呼叫的信令),通常優選TCP或檢查並重發丟失分組的其他協議。

請注意,上述例外情況 - 例如,TCP通常比UDP更好地穿越防火牆,由於流量策略原因的安全性,UDP可能會被阻止,所以VoIP語音有時可能通過TCP在其部分旅程中發送最小。

聽起來像TCP可能是您的需要的一個很好的候選人 - 還有其他協議,如SCTP(https://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol),但我不確定它們通常可以顯示爲您所描述的通信類型更快。