• 简介

    SignalR 是微软的 http 长连接(以下简称长连接)框架,它的出现为我们提供了一套行之有效的实时通信的解决方案.

  • 背景

    在http 1.0 时代,preRequest 都会建立新的tcp链接,如果高并请求情况下,抛开其它影响因素(比如服务端的IO操作,db操作等), 其实是比较浪费性能.

    那在http 1.1时代,传输层 tcp 请求连接做了优化,有了分组,和并,重用tcp连接通道.  提高了tcp的可靠性及处理效率,但即便如此还是会存在tcp 的三次握手准备.

    我们知道http是无状态通信(历史原因),而且是"请求-响应模式".即单工通信. 这是很典型的短连接,但为了重用http的连接通道保持连接的可持续性,减少因为每次创建连接通道而损失的性能,提高响应时间,及时通信,以及节省宽带流量,避免轮询操作,减少不必要服务器资源浪费.长连接(服务推)模式应运而起.

    总而言之长连接有两个基本特征:1:带有状态性,2:是一个双工双工通信的过程.

  • 框架

    SignalR是Server-to-Client 的结构,它提供了丰富的API及良好的扩展:

    1:客户端的代Proxy(Javascript与.net app)

        2:客户端及服务端的身份认证

    3:服务端的Hub 及 PerisistentConnection API

    4:服务端的依赖注入

    5:服务端的AOP

    6:服务端的宿主工具.

  • SignalR 支持多种客户端:

    1:浏览器应用包括:web Form ,Mvc ,wcf 等

    2:net client application 包括:控制台程序,windows service 等

    3:windows phone application

    可以看出 SignalR 基本上支持所有的微软的产品终端.除了微软的系统外,同样也支持Android (可参看SignalA)

  • SignalR 支持四种通信传输方式:

    1:Web Sockets   html5 下的双工通信协议,浏览器版本低的话可能不支持.

    2:Server-Sent Events  服务推方式,是html5下的一个功能, 基本上浏览器都支持,但IE不支持.

    3:Forever Frame  我们常见的通过隐藏iFrame 来于服务端通信,此方式仅仅IE支持,而且要IE8+

    4:Ajax Long Polling   异步轮训请求服务端,所有的客户端都支持.

    这四种方式根据客户端的环境自动切换(微软已经封装好API,你也可以指定某一种传输方式),这些环境因素包括  浏览器版本,net framework 版本,操作系统.《点击参看官网上平台支持》,

    如果使用SignalR 的话建议至少 win7+,iis7+,net framework4.0+;

SiganlR 系列之概述的更多相关文章

  1. 快速入门系列--MVC--01概述

    虽然使用MVC已经不少年,相关技术的学习进行了多次,但是很多技术思路的理解其实都不够深入.其实就在MVC框架中有很多设计模式和设计思路的体现,例如DependencyResolver类就包含我们常见的 ...

  2. [2017-08-07]ABP系列——QuickStartA:概述、思想、入门和HelloWorld

    唔,说好的文章,欠了好久,先水一篇. 本系列目录:Abp介绍和经验分享-目录 概述 先表个态:对绝大多数人来说,ABP是成熟的,足以用到生产环境的. 最适合的:业务非常复杂且不追求极致性能的(这里并不 ...

  3. Orleans 框架3.0 官方文档中文版系列一 —— 概述

    关于这个翻译文档的一些说明: 之前逛博客园的时候,看见有个园友在自己的博客上介绍Orleans. 觉得Orleans 是个好东西. 当时心想:如果后面有业务需要的时候可以用用Orleans框架. 当真 ...

  4. C 标准库系列之概述

    基本上很多编程语言都会提供针对语言本身的一系列的标准库或者包,当然C语言同样也有提供标准库,C语言的标准库是一系列的头文件的集合:如assert.h.ctype.h.errno.h.float.h.l ...

  5. zk系列-zookeeper概述

    接触zk是2年前了,最近工作又比较依赖于zk,所以准备起个系列文章,系统的总结下. zookeeper是一个分布式的用于协调的服务,起源于Hadoop中的一个组件.分布式系统可以用zookeeper实 ...

  6. Dubbo系列_概述

    一.本文目的         学习使用Dubbo也有一段时间了,准备写一个系列文章介绍Dubbo的相关知识和使用,供自己以后回顾和他人学习.有兴趣的同学可以加入群:74085440一起探讨 二.书写计 ...

  7. WCF基于Cookie回传的系列(概述)

    1  WCF的基本知识(不作细述,园子里有很多的经典的文章系列) 2 WCF的执行过程 3 让服务通信像浏览器发送请求应答一样回传Cookie,并实现Cookie在不同的服务间共享 4  基于共享后的 ...

  8. nginx系列 2 概述

    一. nginx功能概述 nginx 提供的基本功能服务归纳为:基本HTTP服务.高级HTTTP服务.邮件代理服务.TCP/UDP 代理服务等四大类. (1) Nginx提供基本HTTP服务,可以作为 ...

  9. asp.net core 系列 1 概述

    一.   概述 ASP.NET Core 是一个跨平台的高性能开源框架,可以用来:建置 Web 应用程序和服务.IoT应用和移动后端.在 Windows macOS 和 Linux 上使用喜爱的开发工 ...

随机推荐

  1. [2017-08-07]ABP系列——QuickStartA:概述、思想、入门和HelloWorld

    唔,说好的文章,欠了好久,先水一篇. 本系列目录:Abp介绍和经验分享-目录 概述 先表个态:对绝大多数人来说,ABP是成熟的,足以用到生产环境的. 最适合的:业务非常复杂且不追求极致性能的(这里并不 ...

  2. login shell与non-login shell的区别

    Bash应该是我们每天日常工作接触最多的东西了,就像我们最忠实的朋友,我们有必要了解一下这位朋友的“习性”. Bash有几种不同的运行模式,login shell与non-login shell,in ...

  3. SVG裁切和蒙版

    前面的话 本文将详细介绍SVG裁切和蒙版 裁剪 SVG中的<clipPath>的元素,专门用来定义剪裁路径.必须设置的属性是id属性,被引用时使用 下面是一个圆形 <svg heig ...

  4. iOS 环信集成单聊界面,出现消息重复问题

    解决办法很简单,数据重复就是EaseMessageViewController和ChatViewController重复调用了这个吧?//通过会话管理者获取收发消息 [self tableViewDi ...

  5. angularjs-1.3代码学习-$parse

    这次我们来看一下angular的Sandboxing Angular Expressions.关于内置方法的,核心有两块:Lexer和Parser.其中大家对$parse可能更了解一点.好了不多废话, ...

  6. Android学习记录:界面设计

    本片文章将记录进行android界面开发时积累的知识 包括 activity全屏 activity跳转 button设计 逐个输入编辑框设计 d0710 合并旧文章总结更新 d0721 添加内容 == ...

  7. (四)Lua脚本语言入门

    这篇文章就当成铺垫型的文章,写着写着发现有好多想写的,,关于C#与Java,当然作为铺垫肯定与Lua的下部分介绍有关..... 对于"泛型",先看C#中"泛型" ...

  8. Web in Linux小笔记001

    Linux灾难恢复: Root密码修复 Centos single Filesystem是硬盘文件根目录,无法再cd ..就像macitosh 硬盘图标 Pwd:显示绝对路径 MBR修复 模拟MBR被 ...

  9. 201521123100 《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...

  10. 201521123022 《Java程序设计》 第五周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过? ...