SignalR 2.2.1实现跨域Hub

(一)、.NET必须4.5。没有下载好pack包的,需要在NuGet包管理器里的控制台里执行以下两句代码安装必要Dll:
1.Install-Package Microsoft.AspNet.SignalR
2.Install-Package Microsoft.Owin.Cors

如果有现成的Dll,需要引用下图中红框Dll

(二)、创建Hub类

using Microsoft.AspNet.SignalR;
using Microsoft.AspNet.SignalR.Hubs;
using System.Threading.Tasks;
 
namespace SignalR.Hubs {
 
    [HubName("chatHub")]
    public class ChatHub:Hub {
        public override Task OnConnected() {
            Clients.Caller.sayHello("连接成功");
            return base.OnConnected();
        }
 
        public override Task OnReconnected() {
            return base.OnReconnected();
        }
 
        public override Task OnDisconnected(bool stopCalled) {
            return base.OnDisconnected(stopCalled);
        }
 
        [HubMethodName("hello")]
        public void Hello(string name) {
            Clients.All.sayHello2("第二次");
            Clients.All.sayHello3(Context.ConnectionId);
        }
    }
}

(二)、创建Startup类

using Microsoft.Owin.Cors;
using Owin;
 
namespace SignalR {
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.Map("/signalr", map => {
                map.UseCors(CorsOptions.AllowAll);
                map.RunSignalR();
            });
        }
    }
}

(三)、创建空的HTML页面






服务端


客户端:

(四)、注意点就是需要引用动态生成JS:signalr/hubs

引用jqeury、signalR.js、signalr/hubs




    客户端
    
    
    
    


    


你可能感兴趣的:(ASP.NET,.NET,SignalR)