• 简介

    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. Git安装配置(完整版)

    首先安装Windows客户端的git和TortoiseGit. 安装这两个软件还是蛮重要的,很多选项不能乱选. 为了写个完整的博客,我是装了又卸,卸了又装. 1.安装git 下载:https://gi ...

  2. ascii codec can't decode byte 0xe8 in position 0:ordinal not in range(128) python代码报错

    import sys reload(sys) sys.setdefaultencoding('utf-8')

  3. Visual Studio2017数据库架构比较

    一.前言 开发的时候在测试服务器上和线网服务器上面都有我们的数据库,当我们在线网上面修改或者新增一些字段后,线网的数据库也需要更新,这个时候根据表的修改记录,然后在线网上面一个一个增加修改很浪费效率而 ...

  4. Akka(24): Stream:从外部系统控制数据流-control live stream from external system

    在数据流应用的现实场景中常常会遇到与外界系统对接的需求.这些外部系统可能是Actor系统又或者是一些其它类型的系统.与这些外界系统对接的意思是在另一个线程中运行的数据流可以接收外部系统推送的事件及做出 ...

  5. 百度AI开放平台- API实战调用

    百度AI开放平台- API实战调用 一.      前言 首先说一下项目需求. 两个用户,分别上传了两段不同的文字,要计算两段文字相似度有多少,匹配数据库中的符合条件的数据,初步估计列出来会有60-1 ...

  6. PHP初入,for循环使用

    一: 找出100-999之间的所有"水仙花数".所谓水仙花数是指一个三位 数,各位数字的立方和等于该数本身.(如153次方=1的3次方+5的3次方+3的3次方)并输出这些数字 想想 ...

  7. Word直接发布新浪博客(以Wo…

    原文地址:Word直接发布新浪博客(以Word 2013为例)作者:paulke2011 注意:这篇博客直接由Word 2013发出!这虽然也算是一个教程,但更多的是一个试验品. 老早就知道Word有 ...

  8. 软工+C(2017第4期) Alpha/Beta换人

    // 上一篇:超链接 // 下一篇:工具和结构化 注:在一次软件工程讨论课程进度设计的过程中,出现了这个关于 Alpha/Beta换人机制的讨论,这个机制在不同学校有不同的实施,本篇积累各方观点,持续 ...

  9. 第二次作业:编写一个四则运算的"软件"

    - 题目: 请编写一个能自动生成小学四则运算题目的 “软件”. 让程序能接受用户输入答案,并判定对错. 最后给出总共 对/错 的数量. 需求分析: ●基本功能 ●实现100以内的加法 ●实现100以内 ...

  10. 集美大学网络1413第十四次作业成绩(团队九) -- 测试与发布&博客展示(Beta版本)

    题目 团队作业9--测试与发布(Beta版本) 团队作业9成绩  团队/分值 Beta版本测试报告 Beta版本发布说明       总分  Bug类别. 数量 场景测试 测试结果 测试矩阵 出口条件 ...