关于SignalR

因近期要在项目中使用 SignalR 来开发实时web 程序,可在这之前,对SignalR 的了解并不是很多,甚至不知道 SignalR 到底是用来干什么的,可是在经过这段时间的学习和做的一些SignalR 项目,对 SignalR 有了一些了解,以下是我自己对 SignalR 的理解。

ASP.NET  SignalR 是一个为 ASP.NET 开发人员的库,简化了将实时 web 功能添加到应用程序的过程,可用于添加任何需要实时交互的web 程序,或全新类型的 web 应用程序需要高频率更新在服务器上,使客户机与服务器能够双向通信,并保证连接是持续的。例如在线聊天室和在线股票。

SignalR会自动管理客户端连接,允许服务端向所有客户端推送信息,也可以向特定的客户端发送信息。客户端与服务商之间的链接是持久化的,不像每次都开启一个新链接的传统HTTP连接方式。

SignalR 支持"服务器推送"功能,可由服务器代码推送内容给连接客户端立即可用,而不是服务器等待客户端请求新的数据,即请求-响应 。以通过服务总线、SQL SERVER数据库或Redis扩容至数千客户端。

SignalR是开源的,可以通过Github获取。获取地址:

SignalR 提供了简单的 API ,可通过在浏览器中使用 javascript 函数来进行调用从服务器端.NET 代码的服务器到客户端的远程过程调用 (RPC),SignalR 还包括用于连接管理的 API (例如,连接和断开连接事件和分组连接。

SignalR 在可用,使用新的 WebSocket 传输和回退到较旧的运输,在必要时。虽然您肯定可以编写您的应用程序直接使用 WebSocket,使用大量的额外的功能,您将需要实现已经将被做为你的 SignalR 手段。最重要的是,这意味着您可以编写应用程序,利用 WebSocket,而不必担心为旧式客户端创建单独的代码路径。 SignalR 也盾牌你不必担心对 WebSocket,更新,因为 SignalR 将继续更新,以支持变化基础传输协议,提供您的应用程序跨 WebSocket 版本一致的接口。

当然,您可以创建一个使用 WebSocket 单独的解决方案, SignalR 提供的所有功能,您将需要自己写的如回退到其他的交通工具和修改您的应用程序更新到 WebSocket 实现。   SignalR 连接

SignalR 连接为 HTTP开始,然后提升到 WebSocket 连接,并自动检查webSocket是否可用。WebSocket 是理想的传输协议, SignalR可使服务器的内存最有效的利用,具有最低的延迟,和最基本的功能 (比如全双工通信客户端和服务器之间),但它也有最严格的要求: WebSocket 要求服务器使用 Windows Server 2012 或 Windows 8 和.NET 框架 4.5。如果不满足这些要求, SignalR 将尝试使用其他的传输协议,使其连接。

使用HTML 5

Signalr的全双工通信功能取决于对HTML 5的支持。如果客户端浏览器不支持 HTML 5 标准,将使用 TCP 协议。  WebSocket(如果服务器和浏览器支持 Websocket)。WebSocket 是建立真正的全双工通信协议,双向连接,是客户端和服务器之间的唯一的持久连接。然而,WebSocket 也有最严格的要求 ;它仅完全支持较高版本的Internet Explorer Google Chrome、 火狐浏等览器,并只在其他浏览器 Safari 已经部分实现。

服务器发送事件,也称为 EventSource (如果浏览器支持服务器发送事件, Internet Explorer 除外)。

 

SignalR (一)的更多相关文章

  1. SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]

    目录 SignalR系列目录 前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的 ...

  2. ABP文档 - SignalR 集成

    文档目录 本节内容: 简介 安装 服务端 客户端 连接确立 内置功能 通知 在线客户端 帕斯卡 vs 骆峰式 你的SignalR代码 简介 使用Abp.Web.SignalR nuget包,使基于应用 ...

  3. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  4. SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论

    异常汇总:http://www.cnblogs.com/dunitian/p/4523006.html#signalR 后台创建了一个DntHub的集线器 前台在调用的时候出现了问题(经检查是代理对象 ...

  5. 基于SignalR实现B/S系统对windows服务运行状态的监测

    通常来讲一个BS项目肯定不止单独的一个BS应用,可能涉及到很多后台服务来支持BS的运行,特别是针对耗时较长的某些任务来说,Windows服务肯定是必不可少的,我们还需要利用B/S与windows服务进 ...

  6. SignalR SelfHost实时消息,集成到web中,实现服务器消息推送

    先前用过两次SignalR,但是中途有段时间没弄了,今天重新弄,发现已经忘得差不多了,做个笔记! 首先创建一个控制台项目Nuget添加引用联机搜索:Microsoft.AspNet.SignalR.S ...

  7. SignalR系列目录

    [置顶]用SignalR 2.0开发客服系统[系列1:实现群发通讯] [置顶]用SignalR 2.0开发客服系统[系列2:实现聊天室] [置顶]用SignalR 2.0开发客服系统[系列3:实现点对 ...

  8. 基于SignalR的消息推送与二维码描登录实现

    1 概要说明 使用微信扫描登录相信大家都不会陌生吧,二维码与手机结合产生了不同应用场景,基于二维码的应用更是比较广泛.为了满足ios.android客户端与web短信平台的结合,特开发了基于Singl ...

  9. XAMARIN.ANDROID SIGNALR 实时消息接收发送示例

    SignalR 是一个开发实时 Web 应用的 .NET 类库,使用 SignalR 可以很容易的构建基于 ASP.NET 的实时 Web 应用.SignalR 支持多种服务器和客户端,可以 Host ...

  10. ABP源码分析三十二:ABP.SignalR

    Realtime Realtime是ABP底层模块提供的功能,用于管理在线用户.它是使用SignalR实现给在线用户发送通知的功能的前提 IOnlineClient/OnlineClient: 封装在 ...

随机推荐

  1. Unity 3D编辑器扩展介绍、教程(一) —— 创建菜单项

    Unity编辑器扩展教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 一 Brief Introduct ...

  2. Codeforces 1096G. Lucky Tickets【生成函数】

    LINK 题目大意 很简单自己看 思路 考虑生成函数(为啥tags里面有一个dp啊) 显然,每一个指数上是否有系数是由数集中是否有这个数决定的 有的话就是1没有就是0 然后求出这个生成函数的\(\fr ...

  3. 古典、SOA、传统、K8S、ServiceMesh

    古典.SOA.传统.K8S.ServiceMesh 十几年前就有一些公司开始践行服务拆分以及SOA,六年前有了微服务的概念,于是大家开始思考SOA和微服务的关系和区别.最近三年Spring Cloud ...

  4. HDU2476 String painter

    题意 String painter Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  5. 使用prolog逻辑语言解决爱因斯坦斑马难题

    如果你想获得更好的阅读体验,可以前往我在 github 上的博客进行阅读,http://lcomplete.github.io/blog/2013/06/28/sevenlang-prolog/. 目 ...

  6. Maven的dependency type属性

    官方地址: http://maven.apache.org/ref/3.5.2/maven-model/maven.html (搜索:Some examples are jar, war, ejb-c ...

  7. bzoj 3572 [Hnoi2014]世界树——虚树

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3572 关于虚树:https://www.cnblogs.com/zzqsblog/p/556 ...

  8. linux 信号处理 三 (信号集的使用)

    sigprocmask系统调用 使用条件: 1.有时候不希望在接到信号时就立即停止当前执行,去处理信号,同时也不希望忽略该信号,而是延时一段时间去调用信号处理函数.这种情况是通过阻塞信号实现的. 2. ...

  9. vs2015 去除 git 源代码 绑定,改成向tfs添加源码管理

    除了下文的方法是将源码管理从git改成tfs之外,还要做以下几步即可 向tfs添加源码 打开源码管理(管理连接),双击打开你要向其中添加的tfs连接 选中该解决方案,右键 将解决方案添加到源码管理 嵌 ...

  10. bzoj2262: 平行宇宙与虫洞

    Description 量子力学指出,宇宙并非只有一种形态. 根据量子理论,一件事件发生之后可以产生不同的后果,而所有可能的后果都会形成自己的宇宙. 我们可以把一个宇宙看成一个时间轴,虫洞可以看成不同 ...