SiganlR 系列之概述

  • 简介

    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+;

时间: 2024-10-07 18:59:40

SiganlR 系列之概述的相关文章

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

虽然使用MVC已经不少年,相关技术的学习进行了多次,但是很多技术思路的理解其实都不够深入.其实就在MVC框架中有很多设计模式和设计思路的体现,例如DependencyResolver类就包含我们常见的DI依赖注入概念和注册表模式(GetService)等内容,ExceptionFilter等过滤器就体现AOP的概念,整个MVC内置了一个IOC容器,基本上所有的框架类的对象都是通过这种方式来创建的.此外,一直觉得很j2ee的spring很棒,其实如果大家很熟悉EHAB(微软企业开发库)的话,就会发

Algorithms算法系列文章概述

(1)blog内所有文章并非全部原创,大部分整理参考自Robert Sedgewick and Kevin Wayne  所著Algorithms视频教程和书中例子中提到的数据源文件均可从http://algs4.cs.princeton.edu官方网站中获取 (2)blog中算法的描述大部分是java实现,部分c/c++ (3)转载请注明 本书框架: 1:基础   包含在随后文章中用来实现分析算法的基本原则和方法.java变成模型,数据抽象,基本数据结构,集合类的抽象数据类型,算法性能分析的方

【菜鸟也疯狂UML系列】——概述

<信息系统开发与管理>,<软件工程>这两本书中都有提到过UML,想必我们对UML已经不陌生了吧,虽说很熟悉,但是只是了解而已,而今天<UML基础与应用>and <大象:Thinking in UML>将带领我们进入UML的内心世界,让我们与UML交个知心朋友吧! 概述导图 解释说明 概述嘛,讲的都是宏观上的东西,对于知识点不是很详细,但是却很重要,可以说是整本书,整个视频的一个框架,基本上后面的内容都是在概述的基础上展开详细的讲解. 对于上面导图的内容就不多

C 标准库系列之概述

基本上很多编程语言都会提供针对语言本身的一系列的标准库或者包,当然C语言同样也有提供标准库,C语言的标准库是一系列的头文件的集合:如assert.h.ctype.h.errno.h.float.h.limits.h.locale.h.math.h.setjmp.h.signal.h.stdarg.h.stddef.h.stdio.h.stdlib.h.string.h.time.h等约15个头文件:另外语言只是制定了标准.规范,故目前不同的厂商.系统可能有不同的标准库实现,如GNU的glibc,

网络基本功系列:概述

注:本系列博客主要转载自EMC-Community,特别感谢Zhang Jiawen . 常言道:欲练神功,必先练好基本功.本系列文章着重于讲解网络管理实际应用中常常涉及的重要知识点,尽量以实用为主. 主要内容为: 网络传输 交换机 VLAN与Trunk 路由(上) 路由(下) 链路聚合 IP地址与子网 TCP滑动窗口 TCP重传 TCP确认机制 TCP窗口调整与流控 细说Linux网络配置(上) 细说Linux网络配置(下) 常用诊断工具:ping 常用诊断工具:netstat 常用诊断工具:

Java NIO系列(一) - 概述

前言 Java NIO全称java non-blocking IO,是指jdk1.4及以上版本里提供的新api(New IO),为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络. Java NIO提供了与标准IO不同的IO工作方式,Channel.Buffer和Selector构成了核心的API.其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使用的工具类. 通道和缓冲区 (Channel and Buffer): 标准的I

asp.net core 系列 1 概述

一.   概述 ASP.NET Core 是一个跨平台的高性能开源框架,可以用来:建置 Web 应用程序和服务.IoT应用和移动后端.在 Windows macOS 和 Linux 上使用喜爱的开发工具.部署到云或本地.NET Core 或 .NET Framework 上运行. ASP.NET Core  可以面向 .NET Core 或 .NET Framework.面向 .NET Framework 的 ASP.NET Core 应用无法跨平台,它们仅在 Windows 上运行.通常,AS

分布式系列一: 概述

分布式系统的特点 高并发,大流量(qps,tps) 海量数据 什么是分布式 分布式系统是由很多计算机组成, 他们之间的通信通过网络连接完成, 对外表现为一个整体. 分布式技术上需要解决两个问题, 一个是业务拆解, 一个是节点通信. 分布式和集群的关系 分布式是指一个系统由多个业务模块组成,他们分别部署到不同服务器; 集群是指一个业务部署到多个服务器; 分布式发展历史 1964年IBM发布大型机之后, 引领系统向集中式方向发展; PC机发展起来后, 它的性能和计算能力得到迅猛发展, 同时集中式发展

Spartan6系列之器件引脚功能详述

1.   Spartan-6系列封装概述 Spartan-6系列具有低成本.省空间的封装形式,能使用户引脚密度最大化.所有Spartan-6 LX器件之间的引脚分配是兼容的,所有Spartan-6 LXT器件之间的引脚分配是兼容的,但是Spartan-6 LX和Spartan-6 LXT器件之间的引脚分配是不兼容的. 表格 1Spartan-6系列FPGA封装 2.   Spartan-6系列引脚分配及功能详述 Spartan-6系列有自己的专用引脚,这些引脚是不能作为Select IO使用的,