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

接续上一篇:《ASP.NET SignalR系列》第一课 认识SignalR (还没有看的话,建议您先看看)

一、指定通信方式

建立一个通讯方式需要一定的时间和客户机/服务器资源。如果客户机的功能是已知的,那么通信方式在客户端连接开始的时候就可以指定。下面的代码片段演示了使用AJAX长轮询方式来启动一个连接,将如果我们知道该客户端不支持其他的协议的话:

connection.start({ transport: 'longPolling' });

你可以指定一个替补方式,如果你想让客户端按照顺序尝试通讯方式的话.下面的代码片段展示了尝试使用WebSocket,如果失败直接使用长轮询。

connection.start({ transport: ['webSockets','longPolling'] });

指定将字符串常量定义如下:

  • webSockets

  • foreverFrame

  • serverSentEvents

  • longPolling

二、连接和集线器(Hubs)

SignalR API包括两种模型(用于客户端和服务端的通信):持久连接模型(Persistent Connections)和集线器(Hubs)模型

  一个连接代表一个简单的终结点(相当于单个收件人、被分组的、广播消息 而言)

持久连接API(在.NET代码中以PersistentConnection呈现),它使得开发人员便捷使用SignalR暴露的底层通讯协议

连接通信模型,对习惯于使用类似WCF的同学们比较熟悉.

  集线器模型是一个建立于连接API的高级管道.SignalR处理夸机器便捷的调度问题易如反掌,它使得客户端调用服务端的方法简单得犹如调用本地方法一样.反之亦然.

使用Hubs模型,或许对那些使用过.net remoting的人来讲就很容易理解了.使用Hub还可以让你对强类型参数方法、model绑定成为易事.

三、架构图

下面的架构图展示了Hubs和持久连接及潜在技术直接关系.

四、Hub如何工作

当服务器端代码调用客户端上的方法时,一个数据包会被传输在活跃的通信方式上,该通讯方式包含要调用的方法的名称和参数(当一个对象作为方法参数被传输时,把它序列化JSON)。然后客户端匹配方法的名字(客户端代码中定义的)。如果有匹配,该方法将会被执行.

我们可以用Fiddler.来监控方法的调用过程.下图展示了一个从服务端来的方法调用.

从Hub传来的方法叫做MoveShapeHub,将被调用的方法及叫做updateShape

在这个例子中,Hub的名字以H参数识别,方法名以M参数识别,传输的数据以A参数识别.

上面例子的代码:High-Frequency Realtime

四、如何选择通信模型呢?

大多数程序应该选择Hubs API.连接API可以在以下情形中使用:

  • 实际消息发送的格式需要被指定
  • 开发人员跟喜欢使用消息和调度模型
  • 一个已经存在的应用程序(它使用了消息模型)

五、下一课:《ASP.NET SignalR系列》第三课 SignalR的支持平台

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

《ASP.NET SignalR系列》第二课 SignalR的使用说明的更多相关文章

  1. CODING DevOps 微服务项目实战系列第二课来啦!

    近年来,工程项目的结构越来越复杂,需要接入合适的持续集成流水线形式,才能满足更多变的需求,那么如何优雅地使用 CI 能力提升生产效率呢?CODING DevOps 微服务项目实战系列第二课 <D ...

  2. SignalR系列教程:SignalR快速入门

    ---恢复内容开始--- 本篇是SignalR系列教程的第一篇,本篇内容介绍了如何创建SignalR应用,如何利用SignalR搭建简易的聊天室等,本篇内容参考自:http://www.asp.net ...

  3. maven学习系列第二课,关于springmvc的pop.xml的依赖的添加

    不说废话了,图的书序就是操作顺序 1. 2.

  4. CODING DevOps 代码质量实战系列第二课: PHP 版

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

  5. 《ASP.NET SignalR系列》第三课 SignalR的支持平台

    从现在开始相关文章请到: http://lko2o.com/moon 接着第二课:<ASP.NET SignalR系列>第二课 SignalR的使用说明 一.服务器系统要求 SignalR ...

  6. 《ASP.NET SignalR系列》第一课 认识SignalR

    从现在开始相关文章请到: http://lko2o.com/moon 一.概述 ASP.NET signalr对ASP.NET开发者来说是一个新的程序库,它能让我们更加容易便捷地开发实时通信功能; s ...

  7. 《ASP.NET SignalR系列》第五课 在MVC中使用SignalR

    接着上一篇:<ASP.NET SignalR系列>第四课 SignalR自托管(不用IIS) 一.概述 本教程主要阐释了如何在MVC下使用ASP.NET SignalR. 添加Signal ...

  8. 《ASP.NET SignalR系列》第四课 SignalR自托管(不用IIS)

    从现在开始相关文章请到: http://lko2o.com/moon 接着上一篇:<ASP.NET SignalR系列>第三课 SignalR的支持平台 一.概述 SignalR常常依托于 ...

  9. [Asp.net 开发系列之SignalR篇]专题六:使用SignalR实现消息提醒

    一.引言 前面一篇文章我介绍了如何使用SignalR实现图片的传输,然后对于即时通讯应用来说,消息提醒是必不可少的.现在很多网站的都有新消息的提醒功能.自然对于SignalR系列也少不了这个功能的实现 ...

随机推荐

  1. android oauth 微博客户端 架构一

    最近研究oauth协议,为了进一步 的巩固自己的学习成果,顾完成了android的新浪客户端.他的架构如下: UI层微博中的各个窗体  就是所谓的各个activitylogic层程序的核心控制调度模块 ...

  2. RCP:利用actionSet在菜单(menu)里添加内容

    eclipse的菜单menu.工具栏toolbar乃至视图的上下文菜单contextmenu都是使用Action或Command实现的. Action即是 org.eclipse.jface.acti ...

  3. 人人都是 DBA(IV)SQL Server 内存管理

    SQL Server 的内存管理是一个庞大的主题,涉及特别多的概念和技术,例如常见的 Plan Cache.Buffer Pool.Memory Clerks 等.本文仅是管中窥豹,描述常见的内存管理 ...

  4. Javascript自己动手实现getter/setter

    虽然ES5中为我们提供了Object.defineProperty方法来设置getter与setter,但此原生方法使用起来并不方便,我们何不自己来实现一个类,只要继承该类并遵循一定的规范就可以拥有媲 ...

  5. .net开发笔记(十六) 对前部分文章的一些补充和总结

    补充有两个: 一个是系列(五)中讲到的事件编程(网址链接),该文提及到了事件编程的几种方式以及容易引起的一些异常,本文补充“多线程事件编程”这一块. 第二个是前三篇博客中提及到的“泵”结构在编程中的应 ...

  6. ngModel 值不更新/显示

    angular中的$scope是页面(view)和数据(model)之间的桥梁,它链接了页面元素和model,也是angular双向绑定机制的核心. 而ngModel是angular用来处理表单(fo ...

  7. [Beautifulzzzz的博客目录] 快速索引点这儿O(∩_∩)O~~,红色标记的是不错的(⊙o⊙)哦~

    3D相关开发 [direct-X] 1.direct-X最小框架 [OpenGL] 1.环境搭建及最小系统 [OpenGL] 2.企业版VC6.0自带的Win32-OpenGL工程浅析 51单片机 [ ...

  8. hibernate HQL和Criteria

    package com.test; import java.util.Date; import java.util.List; import org.hibernate.Query; import o ...

  9. sigar

    从http://sourceforge.net/projects/sigar/files/sigar/1.6/hyperic-sigar-1.6.4.zip/download下载sigar, 参照了h ...

  10. piap.windows io 监测attilax总结

    piap.windows io 监测attilax总结 当硬盘光狂闪的时候. 主要目标:找出哪个进程占用io最多, 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来 ...