Let's go

SignalR

SignalR 是 ASP.NET 团队正在开发一个 Microsoft .NET Framework 库 jQuery 插件,可能包括在以后版本 ASP.NET 平台中。 它提供了一些前景极为光明功能,而这些功能正是 .NET Framework 当前不曾具有,并且是越来越多开发者所需要

SignalR 是一个集成客户端与服务器库,基于浏览器客户端基于 ASP.NET 服务器组件可以借助它来进行双向多步对话。 换句话说,该对话可不受限制地进行单个无状态请求/响应数据交换;它将继续,直到明确关闭。 对话通过永久连接进行,允许客户端向服务器发送多个消息,并允许服务器做出相应答复,值得注意是,还允许服务器向客户端发送异步消息。是一个完全基于客户及服务器端解决方案,它是以JS作为客户端ASP.NET作为服务端来创建这类应用。

安装SignalR

创建MVC5 Web应用程序
 
工具——>库程序包管理器——>程序包管理器控制台
安装 SignalR程序包
Install-Package Microsoft.AspNet.SignalR
安装Microsoft.Owin.Cors
Install-Package Microsoft.Owin.Cors


一丶Hub(中心模型OR集线器模型)(大神之作one/two)
<1>代理模式
1.js申明<script src="/signalr/js"></script>自动生成
         //代理服务器通信
            var connection = $.connection.hub;
            var proxy = $.connection.testHub;

 2.调用方法

①. 声明客户端方法: proxy.client.xxx = function (x1, x2) {}       // xxx代表客户端方法名称

②. 调用服务器端方法: proxy.server.xxx(x1,x2);                       //xxx代表服务器端方法名称


<2>非代理模式
1.不需要引入 <script src="/signalr/js"></script>
    [HubName("test")]
    public class TestHub : Hub
    {
    }
 public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            //默认前端代理-----默认映射路径"/signalr"
            //app.MapSignalR();

              app.MapSignalR("/test", new HubConfiguration());//自己设定访问路径,同时设置Hub配置项,无需指定启动的Hub类,因为它们被自动识别
        }
    }
   //非代理进行与服务器通信
     var conn= $.hubConnection("/test");//根据设置好的映射路径创建连接
     var proxy = connection.createHubProxy("test");//根据连接创建我们需要访问的hub代理。test这里是之前创建好的Testhub类

2.常用方法

①. 声明客户端方法: proxy.on("方法名",function(x1,x2,x3){});              //接收服务器段信息

②. 调用服务器端方法: proxy.invoke("方法名", "参数1","参数2","参数3");  //调用服务器端方法



 

 
posted @ 2018-07-09 09:03  chenze  阅读(329)  评论(0编辑  收藏  举报
有事您Q我