先前用過兩次SignalR,但是中途有段時間沒弄了,今天重新弄,發現已經忘得差不多了,做個筆記!
首先創建一個控制台項目
Nuget添加引用聯機搜索:
Microsoft.AspNet.SignalR.SelfHost
Microsoft.Owin.Cors
在Program.cs添加代碼
添加一個Hub
這個hub里面我們就實現了連接時候服務器像客戶端推送一條消息,客戶端接收方法為receive
下面我又給這個hub添加了一個send方法,客戶端發送消息來的時候會把消息廣播到所有客戶端去,代碼如下:
public void Send(string msg) { Clients.All.receive(msg); }
我們先測試一下web端:
創建一個空的web MVC項目(winform也行,無所謂),Nuget添加搜索SignalR添加:Microsoft Asp.Net SignalR JavaScript Client的引用
創建一個HomeController,在其Index.cshtml分別引用:jquery,jquery.signalR.xxx.min.js
添加JS引用跟JS代碼
注意兩個http地址的引用,一定要寫你的服務點的地址跟端口,接下來我們測試下效果:
從上面我們可以看到,不論哪個連接到服務端,發送消息,所有的客戶端都能收到,如果要針對單獨的人員發送消息,只需要指定這個人的clientID即可
SignalR不會保存客戶端人員信息,也不會知道這個人到底連接沒連接,所以要實現在線離線功能,自己維護一個在線緩存表即可!
點擊這里下載