訊息推送SignalR簡單例項

2022-02-21 20:30:09 字數 1457 閱讀 4890

訊息推送signalr:乙個asp .net 下的類庫,可以在asp .net 的web專案中實現實時通訊。

功能:當所連線的客戶端變得可用時伺服器**可以立即向其推送內容,而不是讓伺服器等待客戶端請求新的資料。

可參考:

前台關鍵之處:

1首先獲取客戶端頁面的名字;

2然後通過 $.connection.chat 建立對應伺服器端 hub 類的**物件 chat;

3伺服器通過 dynamic 方式呼叫客戶端的該方法以實現推送功能。在這裡每當收到伺服器推送來的訊息,就在客戶端頁面的 discussion 列表追加該訊息。

5通過 $.connection.hub.start(); 語句開啟鏈結。

實現**:

後台:

1.先登入,登入後使用者名稱會記錄在乙個dictionary容器中:

///

/// 使用者的connectionid與使用者名稱對照表

///

private readonly static dictionaryuserdictionary = new dictionary();

///

/// 使用者上線函式

///

///

public void sendlogin(string name)

else

} 2.將資訊傳送給所有使用者或指定使用者:

//傳送資訊到指定使用者

public void send(string fromname, string toname, string message)

}//廣播所有資訊

public void send(string name, string message)

前台:

當前使用者:

傳送訊息:

接收資訊:

// 頁面開始時輸入使用者名稱,儲存來顯示該使用者相關資訊(實際使用者登入系統是自動設定)

$('#displayname').val(prompt('輸入使用者名稱:', ''));

document.getelementbyid("uname").innerhtml = $('#displayname').val();

// 將初始焦點設定為訊息輸入框。

$('#message').focus();

//開啟客戶端(web)與伺服器端連線

$.connection.hub.start().done(function () );

$('#sendtouser').click(function () );

});});

效果圖:

SignalR訊息推送

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

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.通知訊息的並行...