SignalR訊息推送

2021-10-02 17:09:56 字數 2517 閱讀 2233

不久前我看到一篇用asp.netcore呼叫signalr做日誌推送的部落格,覺得蠻不錯,就按照作者的教程實際攢了一套webapi,感覺確實挺好的,又查了一些關於signalr的資料,做了一些完善,在這裡進行彙總。

github鏈結

1. signal概要

signalr的實現機制與/.net wcf或remoting是相似的,都是使用遠端**來實現。它要實現的場景類似於實時的web服務,實時web功能是讓伺服器**將內容推送到連線的客戶端立即可用,而不是讓伺服器等待客戶端請求新資料的能力。這點兒類似於websocket。

2. 服務端**

alarmloghub.cs

public

class

alarmloghub

:hub

signalrtimedhostedservice.cs

public

class

signalrtimedhostedservice

:ihostedservice

, idisposable

,new

alarmlogitem

,new

alarmlogitem

,new

alarmlogitem

,new

alarmlogitem

,new

alarmlogitem};

random rd =

newrandom

(datetime.now.millisecond)

;public

signalrtimedhostedservice

(ihubcontext hub)

public

task

startasync

(cancellationtoken cancellationtoken)

private

void

dowork

(object state)

}public

task

stopasync

(cancellationtoken cancellationtoken)

public

void

dispose()

}

在啟動設定檔案startup.cs注入服務

public

void

configureservices

(iservicecollection services));

}public

void

configure

(iwebhostenvironment env));

}

model實體**

/// 

/// 報警日誌

///

public

class

alarmlogitem

///

/// 日誌型別

///

public

alarmlogtype type

///

/// 日誌名稱

///

public

string text

///

/// 日誌詳細資訊

///

public

string description

///

/// 日誌更新時間

///

public

string updatetime

}///

/// 報警日誌型別

///

public

enum alarmlogtype

3. 客戶端**
>

x:name

="messageslist"

rendertransformorigin

="-0.304,0.109"

borderthickness

="1"

borderbrush

="gainsboro"

/>

grid

>

public

partial

class

mainwindow

:window

;connection.

on<

alarmlogitem

>

("receivealarmlog"

,(message)

=>);

});try

catch

(exception ex)

}}

使用signalr從服務端主動推送警報日誌到各種終端

5. 參考資料

史上最全面的signalr系列教程

訊息推送SignalR簡單例項

訊息推送signalr 乙個asp net 下的類庫,可以在asp net 的web專案中實現實時通訊。功能 當所連線的客戶端變得可用時伺服器 可以立即向其推送內容,而不是讓伺服器等待客戶端請求新的資料。可參考 前台關鍵之處 1首先獲取客戶端頁面的名字 2然後通過 connection.chat 建...

SignalR指定使用者推送訊息

一 首先,在mvc專案中安裝singalr包 singalr2.0需要.net4.5以上,vs2010可以安裝1.1.3版本,本例為vs2010 signalr1.1.3 開啟工具 nuget程式管理器 程式包管理器控制台,輸入 安裝完成後,一定要閱讀彈出的txt,這裡非常重要,有兩個很重要的提示,...

SignalR 實時通知訊息並行推送和批量儲存實現

前言 signalr是基於.net平台web應用的實時訊息通訊框架,有人稱之為.net平台的.nodejs 可用於web頁面聊天,訊息推送等功能實現。本文摘取部分 利用.net平台的parallel功能實現通知訊息的並行推送和批量儲存。1.接收通知訊息的api介面 mvc 控制器 2.通知訊息的並行...