从现在开始相关文章请到: http://lko2o.com/moon

一、概述

  ASP.NET signalr对ASP.NET开发者来说是一个新的程序库,它能让我们更加容易便捷地开发实时通信功能;

signalr允许客户端和服务器之间双向通信。服务器可以将内容推送到已连接的客户端。

signalr支持Web Sockets,遇到其他兼容旧的浏览器signalr会用其他技术支持"双向通信"(不要较真)。

signalr包括这些API:连接管理(例如,连接和断开连接的事件)、对连接分组、和访问功能授权。

二、认知随谈

  signalr可以用来添加任何形式的“实时通信”功能到您的ASP.NET应用程序。聊天是经常被用来作为一个应用例子,当然你可以做更多的事情。

用户常常通过刷新网页来查看新数据,或者页面支持长轮询来检索新的数据,使用signalr机制中支持这个方式,但它更智能更强大友好。

SignalR同时支持新类型的网络应用情况:需要高频度从服务端更新的情况(如实时游戏、看看这个ShootR game.)

SignalR提供了更加便捷简单的API,

1.这些API可以用来创建服务端和客户端之间的远程调用.

服务端代码可以调用浏览器上的javascript函数{包括其他的平台};

当然客户端也有可调用服务端的方法(这个大家好理解)

2.这些API可以:连接管理(例如,连接和断开连接的事件)、对连接分组、和访问功能授权。

这两幅图,描述了客户端和服务端之间的相互调用

三、进一步了解

  signalr可以自动化处理连接管理,这可以让你在一个时间点广播消息到所有连接的客户端,

如同聊天室这样的情况。你也可以把消息发送给特定的客户。客户端和服务器之间的连接是持久的,不同于经典的HTTP连接需要重新建立各通信。

signalr支持“服务器推送”功能,如上图讲到的那样可以对客户端进行RPC调用,不同于大家熟知的应答模式

signalr是开源的,可以通过 GitHub 获取源码.

四、SignalR和WebSocket的关系

  signalr会自动地使用websocket通信(只要条件允许),条件不满足的时候也会自动使用其他旧的传输方式。当然你可以直接让你的程序直接使用WebSocket.

使用signalr意味着原先你需要自己花精力做的工作不需要再自己做了,因为它已经为你做了。最重要的是,它会持续更新跟进WebSocket技术,所以你不用担心

协议变化这类事情.

  signalr是对客户端和服务器之间通信方式的一个抽象。一个signalr启动时使用HTTP连接,然后当环境允许就会直接提升到WebSocket连接。
WebSocket是SignalR的理想通信方式,因为WebSocket使服务器的内存得到最有效的利用,同时WebSocket具有最低的延迟,并拥有最底层特征(如客户端和服务器之间的全双工通信),但WebSocket也有最严格的要求:WebSocket需要服务器使用Windows Server 2012或Windows 8,和.NET框架4.5。如果不能满足这些要求,signalr将尝试使用其他通讯方式进行连接。

五、内置技术的使用步骤

下面的列表展示了SignalR决定使用具体哪种通信方式

  1. 如果浏览器<=Internet Explorer 8,用长轮询的方式
  2. 如果配置中指定了使用jsonp,则会使用长轮询的方式
  3. 如何需要创建跨域连接,将会如使用WebSocket,如果一下条件满足的话(否则用长轮询)
    1. 客户端支持WebSocket
    2. 服务端支持WebSocket
    3. 客户端支持Cross-Origin Resource Sharing,这个大家自己百度

接着下一章:《ASP.NET SignalR系列》第二课 SignalR的使用说明

兄台,为了提升我写作的热情,求支持推荐和关注,祝你玉树临风、气度不凡

《ASP.NET SignalR系列》第一课 认识SignalR的更多相关文章

  1. 史上最全面的SignalR系列教程-3、SignalR 实现推送功能-集线器类实现方式

    1.概述 通过前两篇 史上最全面的SignalR系列教程-1.认识SignalR 史上最全面的SignalR系列教程-2.SignalR 实现推送功能-永久连接类实现方式 文章对SignalR的介绍, ...

  2. 史上最全面的SignalR系列教程-4、SignalR 自托管全解(使用Self-Host)-附各终端详细实例

    1.概述 通过前面几篇文章 史上最全面的SignalR系列教程-1.认识SignalR 史上最全面的SignalR系列教程-2.SignalR 实现推送功能-永久连接类实现方式 史上最全面的Signa ...

  3. 史上最全面的SignalR系列教程-5、SignalR 实现一对一聊天

    1.概述 通过前面几篇文章 史上最全面的SignalR系列教程-1.认识SignalR 史上最全面的SignalR系列教程-2.SignalR 实现推送功能-永久连接类实现方式 史上最全面的Signa ...

  4. 史上最全面的SignalR系列教程-6、SignalR 实现聊天室

    1.概述 通过前面几篇文章对SignalR的详细介绍.我们知道Asp.net SignalR是微软为实现实时通信的一个类库.一般情况下,SignalR会使用JavaScript的长轮询(long po ...

  5. CODING DevOps 微服务项目实战系列第一课,明天等你

    CODING DevOps 微服务项目实战系列第一课<DevOps 微服务项目实战:DevOps 初体验>将由 CODING DevOps 开发工程师 王宽老师 向大家介绍 DevOps ...

  6. 史上最全面的SignalR系列教程-2、SignalR 实现推送功能-永久连接类实现方式

    1.概述 通过上篇史上最全面的SignalR系列教程-1.认识SignalR文章的介绍,我们对SignalR技术已经有了一个全面的了解.本篇开始就通过SignalR的典型应用的实现方式做介绍,例子虽然 ...

  7. [Asp.net MVC]Asp.net MVC5系列——第一个项目

    目录 概述 创建第一个项目 添加控制器 总结 概述 本教程是个人一步一步学习的总结,希望能帮到正在进入ASP.Net MVC5方向的朋友,个人也是准备进入ASP.NET MVC5领域,虽然艰辛,但是乐 ...

  8. Asp.net MVC5系列——第一个项目

    转自http://www.cnblogs.com/wolf-sun/p/3888160.html 概述 在这一部分我们添加一个新的控制器HelloWorldController类,以便使用视图来向客户 ...

  9. CODING DevOps 代码质量实战系列第一课:代码规范与 Git Flow

    讲师介绍 杨周 CODING DevOps 架构师 CODING 布道师 连续创业者.DIY/Linux 玩家.知乎小 V,曾在创新工场.百度担任后端开发.十余年一线研发和带队经验,经历了 ToB.T ...

随机推荐

  1. hadoop 笔记(hbase)

    hbase 基础: hbase是基于列的数据,其数据模式如下: 1.安装 1.1)hbase安装分为单机.伪分布式.分布式,单机下安装不依赖于hadoop:因为不需要分布式文件系统支持: 1.2)安装 ...

  2. java 多线程(synchronized)

    package com.example; public class App { public static void main(String[] args) { doRunable dr = new ...

  3. mongodb(分片)

    分片(即sharding)是将数据拆分至不同数据节点的方式. 1.在mongoDB中提供了自动分片的方式,它会根据数据块(chunk)大小的设定,对片键进行拆分: 2.mongoDB配置分片,要配置三 ...

  4. Windows10 UWP开发 - 响应式设计

      Windows10 UWP开发 - 响应式设计 本篇随笔与大家简单讨论一下在开发适配不同分辨率.宽高比的Windows10 Universal App布局时的可行方式与小技巧.经验均从实践中总结, ...

  5. Hadoop开发第4期---分布式安装

    一.复制虚拟机 由于Hadoop的集群安装需要多台机器,由于条件有限,我是用虚拟机通过克隆来模拟多台机器,克隆方式如下图所示

  6. [.net 面向对象编程基础] (10) 类的成员(字段、属性、方法)

    [.net 面向对象编程基础] (10) 类的成员(字段.属性.方法) 前面定义的Person的类,里面的成员包括:字段.属性.方法.事件等,此外,前面说的嵌套类也是类的成员. a.类的成员为分:静态 ...

  7. Programming Erlang 学习笔记(一)

    入门 启动Shell 在cmd中输入命令”erl”,百分号(%)表示一个注释的开始,从百分号开始到这行结束的所有文本都被看做是注释. 一个完整的命令需要以一个句点和一个回车结束. 退出erlang的命 ...

  8. kafka的一些认识

    原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com   近来无事研究了一下kafka,并且用golang连接kafka做了producer和consumer的简单测试 ...

  9. Effective Java 创建和销毁对象

    <Effective Java>阅读笔记,用适合自己理解的方式提炼该书内容.<Effective Java>是一本很实用的书,阅读方法应该是快速的领会,总结,然后应用.而非,一 ...

  10. swift NSComparator

    var cmptr:NSComparator = {(obj1:AnyObject!, obj2:AnyObject!) -> NSComparisonResult in if((obj1[&q ...