Websocket API


API是應用程式介面的縮寫,是一組用於構建軟體應用程式的例程,協定和工具。
一些重要的功能是 -

  • API指定軟體元件應如何互動,以及在編寫圖形化使用者介面(GUI)元件時應使用API。
  • 一個好的API可以通過提供所有構建塊來更輕鬆地開發程式。
  • REST通常在HTTP上執行,通常用於移動應用程式,社群網站,mashup工具和自動化業務流程。
  • REST風格強調通過使用有限數量的操作(動詞)來增強用戶端和服務之間的互動。
  • 通過分配資源提供靈活性; 他們自己獨特的統一資源識別符號(URI)。
  • REST避免歧義,因為每個動詞都有特定含義(GET,POST,PUT和DELETE)

Websocket的優點

Web Socket解決了REST或HTTP的一些問題 -

雙向
HTTP是一種單向協定,用戶端始終發起請求。伺服器處理並返回響應,然後用戶端使用它。Websocket是一種雙向協定,其中沒有預定義的訊息模式,例如請求/響應。用戶端或伺服器可以向另一方傳送訊息。

全雙工
HTTP允許請求訊息從用戶端轉到伺服器,然後伺服器向用戶端傳送響應訊息。在給定時間,用戶端正在與伺服器通訊,或者伺服器正在與用戶端通訊。Websocket允許用戶端和伺服器相互獨立地進行通訊。

單TCP連線
通常,為HTTP請求啟動新的TCP連線,並在收到響應後終止。需要為另一個HTTP請求/響應建立新的TCP連線。對於Web Socket,使用標準HTTP升級機制升級HTTP連線,並且用戶端和伺服器通過相同的TCP連線進行通訊以進行Web Socket連線的生命週期。

下面給出的圖表顯示了為恆定有效負載大小處理N個訊息所花費的時間(以毫秒為單位)。

以下是為此圖表提供的原始資料 -

上面給出的圖表和表格顯示REST開銷隨著訊息數量的增加而增加。這是真的,因為需要啟動和終止許多TCP連線,並且需要傳送和接收許多HTTP頭。

最後一列特別顯示了完成REST請求所需時間的倍增因子。
第二個圖顯示了通過改變有效負載大小來處理固定數量的訊息所花費的時間。
有效負載大小

以下是為此圖表提供的原始資料 -

此圖表顯示處理REST端點的請求/響應的增量成本是最小的,並且大部分時間花費在連線啟動/終止和遵守HTTP語意上。

結論
Web Socket是一種低階協定。包括簡單的請求/響應設計模式,如何建立/更新/刪除資源需求,狀態程式碼等都要建立在它之上。所有這些都為HTTP定義良好。

Web Socket是一種有狀態協定,而HTTP是無狀態協定。Web通訊端連線可以在單個伺服器上垂直擴充套件,而HTTP可以水平擴充套件。Web Socket水平擴充套件有一些專有解決方案,但它們不是基於標準。HTTP附帶了許多其他好東西,如快取,路由和多路複用。所有這些都需要在Web Socket之上定義。