當前位置:編程學習大全網 - 遊戲軟體 - OkHttp3-連接(Connections)

OkHttp3-連接(Connections)

雖然通常妳只需要提供壹個 URL 給OkHttp,OkHttp就可以幫妳完成其他事情。但是實際上OkHttp連接服務器需要三個條件: URL , Address , Route 。

提供壹個 URL (比如 /square/ok )以及連接此服務器所需要的靜態配置:端口號, HTTPS 設置,以及指定的網絡協議(比如 HTTP/2 或者 SPDY )。

相同地址的 URL 也可以***用相同的底層 TCP Socket 連接。***用相同的連接對於性能有很大的提升:更低的延遲,更大的吞吐量(復用連接,由於每個 TCP 啟動的都需要較多的準備工作),更少的電能損耗。OkHttp使用壹個連接池,來自動復用 HTTP/1.x connections 、 HTTP/2 、 SPDY 連接。

URL為地址提供了壹些字段(比如域名、主機名、端口號),其他的字段都來自於 OkHttpClient 。

Routes 在OKHttp中是壹個對象,它為OkHttp提供動態配置!

路由提供了實際連接到服務器所需要的動態配置。比如所指定用來嘗試連接服務器的 IP 地址(從 DNS 服務商獲得)、連接過程中實際所使用到的代理服務器(如果使用了 ProxySelector ),以及使用的是哪個版本的

TLS 協議(當使用 Https 協議連接時候需要)。

對於壹個地址來說 ,可能存在有很多種路由的方式。比如,當壹個服務器被托管在多個數據中心,這時路由從 DNS 供應商獲取的響應中就可以獲取到多個 IP 地址。

當妳使用OkHttp去請求壹個 URL 時,OkHttp為妳做了如下事情:

如果在連接的過程中出現問題,那麽OkHttp將會選擇其他的路由進行重新連接。這意味著當壹個服務器的某壹個 IP 地址無法訪問時,OkHttp可以嘗試別的 IP 地址進行訪問。或者當壹個連接池過期或者妳嘗試連接的所用的 TLS 版本不受服務器支持時,這種重連機制也是非常有用的。

壹旦客戶端發來接收到來自服務器的響應,那麽這個 Connection 將會被放置到連接池中以備於將來新的連接進行復用。 Connection 在長期不使用的情況下,將會從這個連接池中被移除。

··

  • 上一篇:c#中如何實現可以重復的鍵值
  • 下一篇:阿肯是指什麽民族的民間歌手
  • copyright 2024編程學習大全網