【W(wǎng)ebsocket】使用 SignalR 和 .NET 進(jìn)行b/s和c/s架構(gòu)實(shí)時(shí)通信應(yīng)用程序開發(fā)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
如今的應(yīng)用程序常常需要與用戶進(jìn)行實(shí)時(shí)通信,無(wú)論是發(fā)送即時(shí)通知、提供實(shí)時(shí)聊天功能,還是動(dòng)態(tài)更新儀表盤都是如此。SignalR是一個(gè).NET庫(kù),它通過支持服務(wù)器與客戶端之間的雙向通信,簡(jiǎn)化了實(shí)時(shí)應(yīng)用程序的開發(fā)。 在本指南中,我們將深入探究SignalR,涵蓋其主要用例,并通過一個(gè)用C#編寫的實(shí)際示例來創(chuàng)建一個(gè)實(shí)時(shí)應(yīng)用程序。 什么是SignalR? SignalR是一個(gè).NET庫(kù),它通過使服務(wù)器在有更新可用時(shí)能立即將數(shù)據(jù)推送給客戶端(無(wú)需客戶端主動(dòng)請(qǐng)求),來促進(jìn)實(shí)時(shí)通信。SignalR構(gòu)建于WebSocket之上,并且為了兼容性考慮(作為備用方案),它還會(huì)使用諸如服務(wù)器發(fā)送事件(Server-Sent Events)和長(zhǎng)輪詢(Long Polling)等其他技術(shù),以確保能跨不同平臺(tái)正常工作。 工作原理 SignalR使用“中心(Hubs)”來管理服務(wù)器與客戶端之間的通信。“中心”是一個(gè)類,你可以在其中定義能被客戶端和服務(wù)器調(diào)用的方法,從而簡(jiǎn)化實(shí)時(shí)應(yīng)用程序中復(fù)雜的交互操作。 關(guān)鍵用例
在.NET中設(shè)置SignalR 步驟1:創(chuàng)建項(xiàng)目 打開Visual Studio并創(chuàng)建一個(gè)新的ASP.NET Core Web應(yīng)用程序。 選擇“API”或者“Web應(yīng)用程序”作為項(xiàng)目類型。 在.csproj文件中,確保列出了“Microsoft.AspNetCore.SignalR”;如果沒有,通過NuGet添加它。 步驟2:配置SignalR 在Startup.cs文件中,在ConfigureServices方法中添加SignalR配置:
步驟3:創(chuàng)建“中心” 讓我們創(chuàng)建一個(gè)“中心”來管理聊天功能。 在項(xiàng)目中,添加一個(gè)名為“Hubs”的文件夾。 在“Hubs”文件夾內(nèi),創(chuàng)建一個(gè)名為ChatHub.cs的新類:
在這里,SendMessage方法允許客戶端向服務(wù)器發(fā)送消息,然后服務(wù)器使用Clients.All.SendAsync將該消息轉(zhuǎn)發(fā)給所有已連接的客戶端。 實(shí)際示例:使用JavaScript實(shí)現(xiàn)客戶端 現(xiàn)在,讓我們創(chuàng)建一個(gè)簡(jiǎn)單的HTML和JavaScript界面,用于連接到“中心”并發(fā)送/接收消息。 在項(xiàng)目中,添加一個(gè)名為index.html的文件,內(nèi)容如下:
這段代碼連接到“中心”,并定義了發(fā)送消息以及實(shí)時(shí)顯示接收到的消息的函數(shù)。 其他用例 通知 對(duì)于通知系統(tǒng),你可以在“中心”中創(chuàng)建一個(gè)方法,比如SendNotification,然后調(diào)用該方法向所有客戶端或特定的客戶端群組發(fā)送特定通知。
動(dòng)態(tài)儀表盤 一個(gè)需要展示實(shí)時(shí)數(shù)據(jù)(比如銷售數(shù)據(jù)或系統(tǒng)監(jiān)控?cái)?shù)據(jù))的儀表盤可以使用類似的方法。你可以定義一些方法,用接收到的新數(shù)據(jù)來更新客戶端。
SignalR簡(jiǎn)化了實(shí)時(shí)應(yīng)用程序的構(gòu)建,實(shí)現(xiàn)了快速、動(dòng)態(tài)的交互。本指南涵蓋了創(chuàng)建聊天應(yīng)用程序的基本步驟,同樣的概念也可應(yīng)用于諸如通知和儀表盤等其他用例。 借助SignalR,你的系統(tǒng)能夠快速適應(yīng)變化,使其非常適用于許多現(xiàn)代場(chǎng)景。 閱讀原文:原文鏈接 該文章在 2024/12/31 11:35:27 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |