ASP.NET SignalR是一个ASP.NET 下的类库,可以在ASP.NET 的Web项目中实现实时通信。实际上 Asp.net SignalR 2 实现 服务端消息推送到Web端, 更加简单
下面通过一个简单例子介绍SignalR的用法:
项目结构如下:
为了支持 SignalR,使用 NuGet 控制台往项目中安装了 SignalR,这里我用的是2.1.2版本
安装命令:
Install-Package Microsoft.AspNet.SignalR -Version 2.1.2
更新命令:
UPDATE-Package Microsoft.AspNet.SignalR -Version 2.4.0 UPDATE-Package jQuery -Version 1.8.2
首先我们新建一个SignalR集线器代理类MyChatHub,该类需要继承 Hub 类,并创建一个业务逻辑需要的方法,本例中主要应用到的方法:
//调用所有客户端的SendMessage方法 Clients.All.SendMessage(message);
MyChatHub完整类如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; //先在Nuget上搜索Microsoft.AspNet.SignalR安装 using Microsoft.AspNet.SignalR; using Microsoft.AspNet.SignalR.Hubs; namespace SignalRDEMO { /// <summary> /// 自定义SignalR集线器代理类名称 /// </summary> [HubName("myChatHub")] public class MyChatHub : Hub { /// <summary> /// 推送至所有客户端 /// </summary> /// <param name="message">消息</param> public void Send(string message) { //调用所有客户端的SendMessage方法 Clients.All.SendMessage(message); } } }