ASP.NET SignalR是一个ASP.NET 下的类库,可以在ASP.NET 的Web项目中实现实时通信。实际上 Asp.net SignalR 2 实现 服务端消息推送到Web端, 更加简单

下面通过一个简单例子介绍SignalR的用法:

项目结构如下:

Asp.net SignalR 实现服务端消息实时推送到所有Web端

为了支持 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);
        }
    }
}
View Code

相关文章: