Socket.IO 是廣受歡迎的開放原始碼程式庫,可用於用戶端與伺服器之間的實時傳訊。 管理客戶端與伺服器之間的具狀態和持續性連線,通常是 Socket.IO 使用者感到沮喪的一個原因。 當多個 Socket.IO 執行個體分散到伺服器時,問題會更為尖銳。
Azure 會為 Socket.IO提供完全受控的雲端解決方案。 此支援可減輕開發人員部署、裝載及協調 Socket.IO 執行個體的負擔。 然後,開發小組就可以專注於使用來自 Socket.IO 程式庫的熟悉 API 來建置實時體驗。
簡化的架構
這項功能可移除相應放大 Socket.IO 應用程式時,「配接器」伺服器元件的需求,讓開發小組能夠獲得簡化架構的權益。
自行裝載 Socket.IO 應用程式的權益
下表會顯示從 Azure 使用完全受控解決方案的權益。
| 項目 | 自行裝載 Socket.IO 應用程式 | 在 Azure 上使用 Socket.IO |
|---|---|---|
| 部署 | 客戶管理的 | 受 Azure 管理 |
| 裝載 | 客戶必須佈建足夠的伺服器資源,以提供和維護持續性連線 | 受 Azure 管理 |
| 調整連線 | 使用稱為 配接器 的伺服器端元件所管理的客戶 | Azure 可管理超過 100,000 個開箱即用的用戶端連線 |
| 運行時間保證 | 客戶管理的 | 受 Azure 管理的運行時間超過 99.9% |
| 企業級安全性 | 客戶管理的 | 受 Azure 管理 |
| 票證支援系統 | 不適用 | 受 Azure 管理 |
當您自行裝載 Socket.IO 應用程式時,用戶端會直接與伺服器建立 WebSocket 或長時間輪詢連線。 維護這類 具狀態 連線會對 Socket.IO 伺服器造成沉重的負擔。 此負擔會限制並行連線的數目,並增加傳訊延遲。
達成並行和延遲挑戰的常見方法是 向外擴增至多個 Socket.IO 伺服器。 向外擴增需要稱為 適配卡 的伺服器端元件,例如 Socket.IO 程式庫提供的 Redis 配接器。 不過,這類配接器引進了部署和管理所需的額外元件。 它也要求您撰寫額外的程式碼邏輯,以讓事情正常運作。
透過 Azure 上的 Socket.IO,您可以自由處理調整問題,以及實作與使用配接器相關的程式碼邏輯。
相同的程式設計模型
若要將自我裝載的 Socket.IO 應用程式移轉至 Azure,您只需要新增幾行程式碼。 不需要變更應用程式程式碼的其他部分。 換句話說,程式設計模型會維持不變,而且管理即時應用程式的複雜性會降低。