[食譜好菜] 使用ASP.NET SignalR 實現主動式即時廣播通知 ... | asp.net mvc signalr
ASP.NETSignalR技術出來好幾年了,一直沒有為它發個文,網路上也有很多相關的文章,大家Google一下就很多了,我參考了黑大的文章,而黑大的文章裡面也有連結到其他兩位專家的文章,大家可以去看看,我這邊僅記錄自己實作過程及心得。ASP.NETSignalR基本運作概念SignalR是集中式的架構,訊息的傳遞由伺服器提供的集中器(Hub)統一處理,在Hub中需要宣告給客戶端呼叫的方法,而客戶端需要至少指定一個Hub並為指定的Hub建立Proxy,而且也要宣告給伺服器端呼叫的方法,完成之後進行連線,兩邊就透過呼叫彼此的方法進行溝通。客戶端與客戶...
ASP.NET SignalR 技術出來好幾年了,一直沒有為它發個文,網路上也有很多相關的文章,大家 Google 一下就很多了,我參考了黑大的文章,而黑大的文章裡面也有連結到其他兩位專家的文章,大家可以去看看,我這邊僅記錄自己實作過程及心得。
ASP.NET SignalR 基本運作概念SignalR 是集中式的架構,訊息的傳遞由伺服器提供的集中器(Hub)統一處理,在 Hub 中需要宣告給客戶端呼叫的方法,而客戶端需要至少指定一個 Hub 並為指定的 Hub 建立 Proxy,而且也要宣告給伺服器端呼叫的方法,完成之後進行連線,兩邊就透過呼叫彼此的方法進行溝通。
客戶端與客戶端之間彼此要溝通,需要指定同一個 Hub,將訊息透過 Hub 提供的方法傳送到 Hub 上,由 Hub 決定要將訊息往外傳遞給哪些客戶端,客戶端之間借助這樣的路由機制就可以溝通了。
放在伺服器端 Hub 上給客戶端呼叫的方法及放在客戶端 Hub Proxy 上給伺服器端呼叫的方法,方法名稱不一定要一樣,只要呼叫的時候方法名稱不要打錯、參數的數量要給對就可以了。
架設 SignalR 伺服器既然是 ASP.NET SignalR 當然我們就要建立一個 ASP.NET 的專案,我這邊是用 ASP.NET Web Application (.NET Framework) 這個專案範本建立一個 ASP.NET MVC 的空白專案。
為了方便測試,我建立了一個發送訊息的介面,有 Name 及 Message 欄位。
接著我們到 NuGet 安裝 Microsoft.AspNet.SignalR[1] 套件。
Microsoft.AspNet.SignalR 安裝好之後,我們要先建立一個 Hub,名字就叫 BroadcastHub,裡面就宣告一個給客戶端呼叫的方法 Broadcast(string name, string message),方法裡面我要去呼叫所有客戶端的 showmessage 方法,參數是 name 及 message。
...