SignalR是個熱門的開源函式庫,用來支援像是協作文件這樣的即時互動網頁功能,而現在微軟把SignalR放上雲端,推出Azure SignalR服務,讓開發者不只可以更輕鬆的開發網頁即時功能,且也不需要處理容量配置、擴展或是持續連線等底層問題。

微軟提到,為支援開發Office 365中這樣的共同協作功能,提供用戶端即時響應或是即時修改等功能,需要像是SignalR這樣的函式庫,簡單來說,它讓伺服器程式碼擁有向用戶端推送內容的能力。SignalR是一個ASP.NET熱門函式庫,在GitHub上開源,其讓網頁應用程式輕鬆就能增加即時功能的特色,因此至今已經被下載約300萬次。

而微軟現在還為SignalR推出雲端版Azure SignalR服務,要用雲端資源幫用戶解決開發網頁即時功能常會遇到的障礙。Azure SignalR服務主打完全託管的特性,微軟提到,在不少即時的網頁功能,像是文件協作、股票行情顯示、聊天或是即時儀表板等使用情境,需要高頻率的在用戶端以及伺服器端間傳輸資料,而當服務的用戶一多這些資料流會變得龐大,便需要藉由雲端架構來支援大規模部署。

微軟舉例,很多時候服務需要啟用一大群伺服器,並以記憶體資料庫Redis維持為數眾多的持續連線,來確保用戶獲取正確且即時的訊息推送,但是要達成這個目的並不容易,應用程式除了需要特別的邏輯設計外,也需要不同的網路層支援,而Azure SignalR服務用戶不需要處理這些底層問題,且得力於雲端架構的特性,還可以動態擴展即時功能。

另外,Azure SignalR服務完全支援SignalR的連線特性,其提供多種持續連線的方式,以最大程度確保連線穩定,當服務無法建立WebSocket連接時,SignalR用戶端將退而求其次使用伺服器發送事件或是長輪詢的方式。而Azure SignalR服務也內建監控儀表板,使用者可以掌握連線數量、傳出總流量以及處理速度等資訊。

Azure SignalR服務與本機端SignalR應用程式無縫接軌,ASP.NET Core SignalR現在支援跨平臺的.NET Core Runtime。而對於現存的本機端SignalR應用程式,要將服務轉移至Azure SignalR服務上,微軟表示,只需要將原有應用程式參照Azure SignalR服務的SDK即可。

現在Azure SignalR服務現提供ASP.NET Core SignalR候選第一版,而在用戶端ASP.NET Core SignalR支援TypeScript/Javascript和.NET開發語言,此外,該服務還釋出了REST API,可用於向連線的用戶端推送即時訊息。隨著SignalR函式庫發展,之後還會全面支援Java、Node.js、Python、C++等各語言的SDK。


Advertisement

更多 iThome相關內容