一. 简单说几句

  最早使用SignalR的时候大约是两年前了,记得当时是一个OA中消息的实时提醒,轮询的方式有点耗资源,WebSocket写起来又比较麻烦,最终选择了SignalR,当时是什么版本已经记不清了,反正现在最新的是2.3.0(这里指 .Net FrameWork下,而非Core下),这期间又陆续的在几个项目中用到SignalR,感觉还不错,使用起来也比较便捷,直到今年6月份,再次接到一个OA项目,需要用到SignalR,也是借着这次机会把自己这期间的研究的一些东西和朋友们分享一下,也希望得到朋友们在使用上的一些建议。
  这次写这个系列,是最后做的这个目录,原计划两个周写完,但计划终究赶不上变化,到今天为止,已经三个多周,但前面的六篇文章已经告一段路,这期间,不少朋友建议我使用.Net Core下的SignalR,我粗略的看了看,Core下的SignalR在使用上差别不是太大,这里也是个人的精力和能力有限,在每天七个半小时工作之外,尽可能的去做一些更有意思的事,Core下的SignalR也在后面的计划中,届时还希望朋友们多多支持。
  该系列后面的计划:
    ①:结合业务整合个完整的案例进去。
    ②:详细研究研究Core下的SignalR。
GitHub地址:https://github.com/SignalR/SignalR

    

二. 整体介绍

  该系列从原生Websocket说起,然后进行Signalr的基本介绍,然后PersistentConnection模式,然后介绍Signalr的灵魂Hub模型以及一些零散知识点,最后以SignalR的一种分布式部署方案结束该系列。

  作为目录篇,这里还是有必要再啰嗦一些什么是SignalR了,看过我之前文章的朋友们可以直接跳过了。

  SignalR是微软的一个开源项目,为客户端和服务器端实时通讯的问题提供了很好的解决方案,通过简单的配置和API调用,即可完成相应的通讯功能的开发。

  SignalR对目前为止几类主流的传输协议进行了封装,让浏览器自行选择可以兼容的版本(当然也可以自行指定),这样就解决了开发者使用原生WebSocket时候的痛点了。

SignalR大一统:

  它封装了 WebSocket、ForeverFrame、ServerSentEvents、LongPolling四种主要的传输协议。

  ① WebSocket:它是HTML5提供的一种在单个 TCP 连接上进行全双工通讯的协议。

  ② ForeverFrame(永久帧):它适用于IE浏览器,是在页面中插入一个隐藏的iframe,利用其src属性在服务器和客户端之间创建一条长链接,服务器向iframe传输数据(通常是HTML,内有负责插入信息的javascript),来实时更新页面。

  ③ SeverSentEvents(服务器发送事件,也成EventSourse):顾名思义。

  ④ longPolling(Ajax长轮询):长轮询是对轮询的改进,客户端通过请求连接到服务器,并保持一段时间的连接状态,直到消息更新或超时才返回Response并中止连接,可以有效减少无效请求的次数。

三. 系列章节

   下面我们将通过以下几个章节,系统的介绍一下SignalR中各种知识点,各种配置,由WebSocket原生写法起,以一个聊天室案例为基础,贯穿整个系列,欢迎广大博友前来交流、指正、学习。

        第一节:.Net版基于WebSocket的聊天室样例

        第二节. SignalR开篇以及如何指定传输协议

        第三节:SignalR之PersistentConnection模型详解(步骤、用法、分组、跨域、第三方调用)

        第四节:SignalR灵魂所在Hub模型及再探聊天室样例

        第五节:SignalR大杂烩(与MVC融合、全局的几个配置、跨域的应用、C/S程序充当Client和Server)

        第六节:SignalR完结篇之依赖注入和分布式部署

        第七节:敬请期待

        第八节:敬请期待

        第九节:敬请期待

 

!

  • 作       者 : Yaopengfei(姚鹏飞)
  • 博客地址 : http://www.cnblogs.com/yaopengfei/
  • 声     明1 : 本人才疏学浅,用郭德纲的话说“我是一个小学生”,如有错误,欢迎讨论,请勿谩骂^_^。
  • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
 

实时通讯系列目录篇之SignalR详解的更多相关文章

  1. 深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)

    上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, ...

  2. Android Studio系列教程五--Gradle命令详解与导入第三方包

    Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...

  3. 入木三分学网络第一篇--VRRP协议详解第一篇(转)

    因为keepalived使用了VRRP协议,所有有必要熟悉一下. 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是解决局域网中配置静态网关时,静 ...

  4. 构建安全的Xml Web Service系列之wse之错误代码详解

    原文:构建安全的Xml Web Service系列之wse之错误代码详解 WSE3.0现在还没有中文版的可以下载,使用英文版的过程中,难免会遇到各种各样的错误,而面对一堆毫无头绪的错误异常,常常会感到 ...

  5. mysql基础篇 - SELECT 语句详解

    基础篇 - SELECT 语句详解         SELECT语句详解 一.实验简介 SQL 中最常用的 SELECT 语句,用来在表中选取数据,本节实验中将通过一系列的动手操作详细学习 SELEC ...

  6. SpringBoot系列(十二)过滤器配置详解

    SpringBoot(十二)过滤器详解 往期精彩推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件 ...

  7. [js高手之路] es6系列教程 - 对象功能扩展详解

    第一:字面量对象的方法,支持缩写形式 //es6之前,这么写 var User = { name : 'ghostwu', showName : function(){ return this.nam ...

  8. [转帖]Linux系列之SAR命令使用详解

    Linux系列之SAR命令使用详解 sar是System Activity Reporter(系统活动情况报告)的缩写.这个工具所需要的负载很小,也是目前linux中最为全面的性能分析工具之一.此款工 ...

  9. Java线程通讯方法之wait()、nofity() 详解

    Java线程通讯方法之wait().nofity() 详解 本文将探讨以下问题: synchronized 代码块使用 notify()与notifyAll()的区别 Java wait(),noti ...

随机推荐

  1. Win32 Ime

    Win32 Ime API: ImmGetContext: 获取指定窗口的当前的输入上下文,然后再尝试访问上下文中的信息.应用程序应该定期使用这个功能获取窗口的当前的输入上下文.若hWnd参数为零,将 ...

  2. 来自学长&师兄们的应届校招经验

    PART1        记得三月的第一个星期五吧,小操场打球,偶遇一位研三师兄,就主动跟师兄聊起了校招求职.很高兴,能遇到一位愿意跟你分享他自己求职经验的师兄,师兄也很热情,我们聊了好多.下面,开始 ...

  3. C# 中如何判断字符串的相似度

    基于 F23.StringSimilarity.dll  组件.Github 上可以搜索到该组件. 核心方法: var l = new Levenshtein(); double tempValue ...

  4. SCOI2019酱油记

    这玩意儿咕了--留坑待填

  5. 消息中间件 MQ

    复制粘贴于:https://blog.csdn.net/wqc19920906/article/details/82193316 一.消息中间件相关知识 1.概述 消息队列已经逐渐成为企业IT系统内部 ...

  6. keras04 GAN simple

    reference: GAN 讲解 https://blog.csdn.net/u010900574/article/details/53427544 命令行解析 https://blog.csdn. ...

  7. MySQL-悲观锁和乐观锁

    引言  悲观锁和乐观锁指的并不是一种锁,而是一种思想,一种并发控制的方法. 在事务并发执行的情景中,可能存在多个用户同时更新同一条数据的情况,这可能会产生冲突导致丢失更新或者脏读. 丢失更新是指一个事 ...

  8. Jira安装过程

    一.下载jira jira下载路径:https://www.atlassian.com/software/jira/download 二.安装 jira安装一直下一步下一步即可 三.破解 E:\JIR ...

  9. WebApi(五)-Swagger接口文档①简单集成

    1,通过NuGet引用Swashbuckle 2,打开项目属性-->生成,勾选XML文档文件,保存 3,找到项目App_Start文件夹下WebApiConfig查找GetXmlComments ...

  10. 3 Eclipse 查看不了源码

    Eclipse 查看源码时,报source not found问题,经查资料,需要配置环境变量才能查看到. 在用户变量或者系统变量下,配置CLASSPATH,值为JDK的lib路径:D:\Progra ...