SignalR的簡單實現訊息廣播

2022-06-30 18:42:12 字數 2407 閱讀 2817

之前由於乙個專案的需要(簡單說一下,乙個網頁遊戲,裁判的頁面點選開始按鈕,玩家便可以開始遊戲),研究了很久,最終乙個同事跟我推薦了signalr。距離專案結束已經有一段時間了,再來回顧一下signalr的簡單實現吧。

asp.net signalr 是為.net 開發者提供即時通訊web 應用的類庫。即時通訊web服務就是伺服器將內容自動推送到已經連線的客戶端

,而不是伺服器等待客戶端發起乙個新的資料請求。簡單來說,就是實現即時通訊的功能,裡面很多的功能都已經封裝好了,只需要配置相關的功能即可,然後通過js實現功能。

1.首先在vs中建立乙個mvc專案

2.通過nuget安裝signalr的包並引用到專案

3.成功安裝後,會在scripts資料夾下面新增js指令碼庫

4.向專案中新增乙個signalr集線器(v2)並命名為serverhub。

5.將如下**寫入到剛剛新增的serverhub類中:

1

using

system;

2using

system.collections.generic;

3using

system.linq;

4using

system.web;

5using

microsoft.aspnet.signalr;67

namespace

signalrdemo8;

1920

///21

///供客戶端呼叫的伺服器端**

22///

23///

24public

void send(string

message)

2531

32///

33///

產生隨機使用者名稱函式

34///

35///

使用者名稱長度

36///

37public

static

string generaterandomname(int

length)

3845

return

newrandom.tostring();46}

47}48 }

view code

6.將如下**覆蓋原有的startup的類中:

1

using

microsoft.owin;

2using

owin;

34 [assembly: owinstartupattribute(typeof

(signalrdemo.startup))]

5namespace

signalrdemo615

#endregion16}

17 }

view code

7.在home控制器建立乙個chat action方法:

1

public

actionresult chat()

2

actionresult chat

8.在views中建立chat檢視,檔案**如下:

10.執行程式,然後開啟兩個視窗,即可得到如下執行結果:

正是由於專案的需要,讓我無意中學習了這個signalr,個人覺得,真的是非常好用。至於底層的具體實現,以及如何在客戶端中使用,推薦閱讀:我的專案demo亦是借鑑於此。

訊息推送SignalR簡單例項

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

SignalR的另類實現技巧

很久之前發表過一篇名為 通過三個demo學會signalr的三種實現方式 的文章,在那篇文章裡面詳細介紹了在web應用下的常用signalr實現方法,而今天我們來利用signalr來實現其它的一些用法,比如 b s 與 c s互相通訊,比如 c s與c s通訊。一 b s 與 c s互相通訊 asp...

SignalR的另類實現技巧

原文 signalr的另類實現技巧 很久之前發表過一篇名為 通過三個demo學會signalr的三種實現方式 的文章,在那篇文章裡面詳細介紹了在web應用下的常用signalr實現方法,而今天我們來利用signalr來實現其它的一些用法,比如 b s 與 c s互相通訊,比如 c s與c s通訊。一...