2016-04-13 62 views
0

有很多關於如何通過Apache HTTP Client或HttpsUrlConnection實現http或https連接的文檔,但我想知道是否有其他協議/通信範例可以考慮爲了與服務器通信。實際上,根據我的經驗和閱讀,HttpsUrlConnection非常易於安裝,並且提供了很好的安全性。但我也希望考慮其他因素,如性能和可靠性。Android - 用於網絡通信的不同協議

有沒有其他的協議可以讓我感興趣的Android?

回答

0
+0

是業績增長雖然很好嗎?因爲據我所知,UDP不太安全,不太可靠 –

+0

這是不可靠的。但非常快。遊戲的理想選擇,因爲它減少了滯後但是,您必須準備好以這種方式進行編碼,您可以錯過偶爾的數據包。 –

+0

我不認爲UDP是最好的選擇 - 他特別提到'性能和可靠性'。更好的辦法是使用經驗豐富的HTTP庫。如OkHttp。 – Knossos

0

的Apache HTTP客戶端,或兩者HttpsURLConnection的是可靠的。性能明智的HttpURLConnection比HttpClient快得多。

http://openjavafaq.blogspot.in/2009/03/httpclient-vs-httpurlconnection.html訪問

基於以下測試參數 - 測試參數: 15螺紋 10循環計數 平均時間採取通過連接來完成150個請求:由HttpClient的7.61毫秒 平均時間才能完成150個請求:85.89毫秒 即使認爲HttpURLConnection的性能要快得多,但它不能很好地控制管理Http連接,所以在生產環境中使用HttpClient始終是可行的,因爲預計會有大量事務。

爲了便於比較參考:http://www.innovation.ch/java/HTTPClient/urlcon_vs_httpclient.html

0

有兩件事情你提到的HTTP客戶端和通信協議。

好設計,你必須考慮

1系統)的通信協議(S)

然後

2)客戶端/服務器軟件

去爲http協議你有客戶端(okhttp就是其中之一),支持各種版本/變體的服務器吸引了最廣泛使用的http 1.1'新'http 2.0,spdy,http streaming等。如果你打算做消息/事件驅動你可能想要的應用程序y mqtt或WebSockets。這些都可以帶有某種安全協議(實際上在它之下),這可能會導致一些性能下降。這些都可以在TCP上運行。

有人錯誤地比較了UDP和HTTP,它比較適合比較TCP_vs_UDP。我們已經提到UDP的一些缺點,但QUIC可以處理這些。

所以有很多選擇,取決於你想要做什麼以及你可以做什麼。

回到你選擇的方式似乎決定約1)可能很困難。 所以你可以做的是儘可能地決定你想使用的協議,但也可以選擇一個'智能'客戶端,它可以處理那些在你改變主意的情況下,如okhttpnetty。您也可以選擇像一個模塊化的解決方案,可以即插即用不同的實現,同時你的代碼,使呼叫保持不變(網狀也可以做這在一定程度上),像volleyjus(基於凌空想法)。在這種情況下,你保持靈活性。

更新:也有關於各種協議好的信息在這question