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

  • 相关阅读:
    2020Python作业——类与对象
    图文存储常识:单机、集中、分布式、云、云原生存储
    宜泊科技加入阿里云原生合作伙伴计划,共建智慧停车新生态
    dubbogo 3.0:牵手 gRPC 走向云原生时代
    千万商家的智能决策引擎AnalyticDB如何助力生意参谋双十一
    我在阿里云做前端代码智能化
    网络病毒源的排查(2005年3月22日维护记录)
    在页面中控制媒体流的起播点和播放长度
    注意服务器系统日期对防病毒软件的影响
    修改SQL SERVER虚拟服务器IP的问题
  • 原文地址:https://www.cnblogs.com/wangzhiyong/p/4150070.html
Copyright © 2020-2023  润新知