溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Asp.net?core怎么使用SignalR推送消息過(guò)程

發(fā)布時(shí)間:2022-03-22 13:36:14 來(lái)源:億速云 閱讀:262 作者:小新 欄目:開(kāi)發(fā)技術(shù)

小編給大家分享一下Asp.net core怎么使用SignalR推送消息過(guò)程,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

1)、SignalR簡(jiǎn)介

ASP.NET Core SignalR 是為 ASP.NET 開(kāi)發(fā)人員提供的一個(gè)庫(kù),可以簡(jiǎn)化開(kāi)發(fā)人員將實(shí)時(shí) Web 功能添加到應(yīng)用程序的過(guò)程。

實(shí)時(shí) Web 功能是指這樣一種功能:當(dāng)所連接的客戶端變得可用時(shí)服務(wù)器代碼可以立即向其推送內(nèi)容,而不是讓服務(wù)器等待客戶端請(qǐng)求新的數(shù)據(jù)。

2)、SignalR主要用途:

它出現(xiàn)的主要用途:可以用在聊天室、Web實(shí)時(shí)推送消息 (Real-Push-Message)、單點(diǎn)和多點(diǎn)通訊、掃碼登陸、甚至可以結(jié)合其他技術(shù)用來(lái)做視頻聊天等等。

適合 SignalR 的候選項(xiàng):

  • 需要從服務(wù)器進(jìn)行高頻率更新的應(yīng)用。 示例包括游戲、社交網(wǎng)絡(luò)、投票、拍賣(mài)、地圖和 GPS 應(yīng)用。

  • 儀表板和監(jiān)視應(yīng)用。 示例包括公司儀表板、即時(shí)銷(xiāo)售更新或旅行警報(bào)。

  • 協(xié)作應(yīng)用。 協(xié)作應(yīng)用的示例包括白板應(yīng)用和團(tuán)隊(duì)會(huì)議軟件。

  • 需要通知的應(yīng)用。 社交網(wǎng)絡(luò)、電子郵件、聊天、游戲、旅行警報(bào)和很多其他應(yīng)用都需使用通知。

SignalR 提供用于創(chuàng)建服務(wù)器到客戶端SignalR 的 API。 RPC 從服務(wù)器端 .NET Core 代碼調(diào)用客戶端上的函數(shù)。 提供多個(gè)受支持的平臺(tái),其中每個(gè)平臺(tái)都有各自的客戶端 SDK。 因此,RPC 調(diào)用所調(diào)用的編程語(yǔ)言有所不同。

以下是 ASP.NET Core SignalR 的一些功能:

  • 自動(dòng)處理連接管理。

  • 同時(shí)向所有連接的客戶端發(fā)送消息。 例如聊天室。

  • 向特定客戶端或客戶端組發(fā)送消息。

  • 對(duì)其進(jìn)行縮放,以處理不斷增加的流量。

下面重點(diǎn)給大家介紹下Asp.net core 使用SignalR推送消息。

環(huán)境:

.net core3.1

一.服務(wù)端配置(Startup)

ConfigureServices

Asp.net?core怎么使用SignalR推送消息過(guò)程

Configure

Asp.net?core怎么使用SignalR推送消息過(guò)程

二、自定義類(lèi)繼承Hub 

public class SignalRHub: Hub
    {
        private readonly IHubContext<SignalRHub> _hubContext = null;
 
        public SignalRHub(IHubContext<SignalRHub> context)
        {
            _hubContext = context;
        }
        public override Task OnConnectedAsync()
            Console.WriteLine($"{Context.ConnectionId}已連接");
            return base.OnConnectedAsync();
        public void ReadClientMsgMethod(string msg)
            Console.WriteLine($"{ Context.ConnectionId}客戶端發(fā)來(lái)信息:" + msg);
        /// <summary>
        /// 全員發(fā)送
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        public string CallAllClients(string msg)
            Console.WriteLine("============全員發(fā)送==========");
            Clients.All.SendAsync("CallByHub", "全員發(fā)送>>>>>>>>>>" + msg);
            return MethodInfo.GetCurrentMethod()?.Name + "";
        //發(fā)送消息--發(fā)送給所有連接的客戶端
        public Task SendMessage(string msg)
            return _hubContext.Clients.All.SendAsync("CallByHub", msg);
    }

看完了這篇文章,相信你對(duì)“Asp.net core怎么使用SignalR推送消息過(guò)程”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI