SignalR的介绍以及安装

来源:互联网 发布:淘宝qq群机器人多少钱 编辑:程序博客网 时间:2024/05/29 13:04

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

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

有关SignalR的更多细节

SignalR在NuGet上被分成了几个包:

· SignalR – 主要的包,包括SignalR.Server和SignalR.Js(你应该安装这个)

· SignalR.Server – 服务器端组件用以创建SignalR端点

· SignalR.Js – SignalR的Javascript客户端

· SignalR.Client – SignalR的.NET客户端

· SignalR.Ninject - SignalR 的Ninject 相关解决方案

SignalR的系统要求等请参考:http://www.asp.net/signalr/overview/getting-started/supported-platforms

安装SignalR

创建MVC5 Web应用程序

工具——>库程序包管理器——>程序包管理器控制台
安装 SignalR程序包
Install-Package Microsoft.AspNet.SignalR
安装 Microsoft.Owin.Cors
Install-Package Microsoft.Owin.Cors
PM> Install-Package Microsoft.AspNet.SignalR正在尝试收集与目标为“.NETFramework,Version=v4.5”的项目“SignalRDemo1”有关的程序包“Microsoft.AspNet.SignalR.2.2.0”的相关依赖项信息正在尝试解析程序包“Microsoft.AspNet.SignalR.2.2.0”的依赖项,DependencyBehavior 为“Lowest”正在解析操作以安装程序包“Microsoft.AspNet.SignalR.2.2.0”已解析操作以安装程序包“Microsoft.AspNet.SignalR.2.2.0”正在将程序包“Microsoft.AspNet.SignalR.JS.2.2.0”添加到文件夹“M:\MvcSolution\SignalRDemo1\packages”已将程序包“Microsoft.AspNet.SignalR.JS.2.2.0”添加到文件夹“M:\MvcSolution\SignalRDemo1\packages”已将程序包“Microsoft.AspNet.SignalR.JS.2.2.0”添加到“packages.config”已将“Microsoft.AspNet.SignalR.JS 2.2.0”成功安装到 SignalRDemo1正在将程序包“Microsoft.AspNet.SignalR.Core.2.2.0”添加到文件夹“M:\MvcSolution\SignalRDemo1\packages”已将程序包“Microsoft.AspNet.SignalR.Core.2.2.0”添加到文件夹“M:\MvcSolution\SignalRDemo1\packages”已将程序包“Microsoft.AspNet.SignalR.Core.2.2.0”添加到“packages.config”已将“Microsoft.AspNet.SignalR.Core 2.2.0”成功安装到 SignalRDemo1正在将程序包“Microsoft.AspNet.SignalR.SystemWeb.2.2.0”添加到文件夹“M:\MvcSolution\SignalRDemo1\packages”已将程序包“Microsoft.AspNet.SignalR.SystemWeb.2.2.0”添加到文件夹“M:\MvcSolution\SignalRDemo1\packages”已将程序包“Microsoft.AspNet.SignalR.SystemWeb.2.2.0”添加到“packages.config”已将“Microsoft.AspNet.SignalR.SystemWeb 2.2.0”成功安装到 SignalRDemo1正在将程序包“Microsoft.AspNet.SignalR.2.2.0”添加到文件夹“M:\MvcSolution\SignalRDemo1\packages”已将程序包“Microsoft.AspNet.SignalR.2.2.0”添加到文件夹“M:\MvcSolution\SignalRDemo1\packages”已将程序包“Microsoft.AspNet.SignalR.2.2.0”添加到“packages.config”已将“Microsoft.AspNet.SignalR 2.2.0”成功安装到 SignalRDemo1
PM> Install-Package Microsoft.Owin.Cors正在尝试收集与目标为“.NETFramework,Version=v4.5”的项目“SignalRDemo1”有关的程序包“Microsoft.Owin.Cors.3.0.1”的相关依赖项信息正在尝试解析程序包“Microsoft.Owin.Cors.3.0.1”的依赖项,DependencyBehavior 为“Lowest”正在解析操作以安装程序包“Microsoft.Owin.Cors.3.0.1”已解析操作以安装程序包“Microsoft.Owin.Cors.3.0.1”正在将程序包“Microsoft.AspNet.Cors.5.0.0”添加到文件夹“M:\MvcSolution\SignalRDemo1\packages”已将程序包“Microsoft.AspNet.Cors.5.0.0”添加到文件夹“M:\MvcSolution\SignalRDemo1\packages”已将程序包“Microsoft.AspNet.Cors.5.0.0”添加到“packages.config”已将“Microsoft.AspNet.Cors 5.0.0”成功安装到 SignalRDemo1正在将程序包“Microsoft.Owin.Cors.3.0.1”添加到文件夹“M:\MvcSolution\SignalRDemo1\packages”已将程序包“Microsoft.Owin.Cors.3.0.1”添加到文件夹“M:\MvcSolution\SignalRDemo1\packages”已将程序包“Microsoft.Owin.Cors.3.0.1”添加到“packages.config”已将“Microsoft.Owin.Cors 3.0.1”成功安装到 SignalRDemo1


------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一、概述

  ASP.NET signalr对ASP.NET开发者来说是一个新的程序库,它能让我们更加容易便捷地开发实时通信功能;

signalr允许客户端和服务器之间双向通信。服务器可以将内容推送到已连接的客户端。

signalr支持Web Sockets,遇到其他兼容旧的浏览器signalr会用其他技术支持”双向通信”(不要较真)。

signalr包括这些API:连接管理(例如,连接和断开连接的事件)、对连接分组、和访问功能授权。

二、认知随谈

  signalr可以用来添加任何形式的“实时通信”功能到您的ASP.NET应用程序。聊天是经常被用来作为一个应用例子,当然你可以做更多的事情。

用户常常通过刷新网页来查看新数据,或者页面支持长轮询来检索新的数据,使用signalr机制中支持这个方式,但它更智能更强大友好。

SignalR同时支持新类型的网络应用情况:需要高频度从服务端更新的情况(如实时游戏、看看这个ShootR game.)

SignalR提供了更加便捷简单的API,

1.这些API可以用来创建服务端和客户端之间的远程调用.

服务端代码可以调用浏览器上的Javascript函数{包括其他的平台};

当然客户端也有可调用服务端的方法(这个大家好理解)

2.这些API可以:连接管理(例如,连接和断开连接的事件)、对连接分组、和访问功能授权。


这两幅图,描述了客户端和服务端之间的相互调用

三、进一步了解

  signalr可以自动化处理连接管理,这可以让你在一个时间点广播消息到所有连接的客户端,

如同聊天室这样的情况。你也可以把消息发送给特定的客户。客户端和服务器之间的连接是持久的,不同于经典的HTTP连接需要重新建立各通信。

signalr支持“服务器推送”功能,如上图讲到的那样可以对客户端进行RPC调用,不同于大家熟知的应答模式

signalr是开源的,可以通过 GitHub 获取源码.

四、SignalR和WebSocket的关系

  signalr会自动地使用websocket通信(只要条件允许),条件不满足的时候也会自动使用其他旧的传输方式。当然你可以直接让你的程序直接使用WebSocket.

使用signalr意味着原先你需要自己花精力做的工作不需要再自己做了,因为它已经为你做了。最重要的是,它会持续更新跟进WebSocket技术,所以你不用担心协议变化这类事情.

  signalr是对客户端和服务器之间通信方式的一个抽象。一个signalr启动时使用HTTP连接,然后当环境允许就会直接提升到WebSocket连接。
WebSocket是SignalR的理想通信方式,因为WebSocket使服务器的内存得到最有效的利用,同时WebSocket具有最低的延迟,并拥有最底层特征(如客户端和服务器之间的全双工通信),但WebSocket也有最严格的要求:WebSocket需要服务器使用Windows Server 2012或Windows 8,和.NET框架4.5。如果不能满足这些要求,signalr将尝试使用其他通讯方式进行连接。

五、内置技术的使用步骤

下面的列表展示了SignalR决定使用具体哪种通信方式

  1. 如果浏览器<=Internet Explorer 8,用长轮询的方式
  2. 如果配置中指定了使用jsonp,则会使用长轮询的方式
  3. 如何需要创建跨域连接,将会如使用WebSocket,如果一下条件满足的话(否则用长轮询)
    1. 客户端支持WebSocket
    2. 服务端支持WebSocket
    3. 客户端支持Cross-Origin Resource Sharing,这个大家自己百度
0 0
原创粉丝点击