一步一步学习SignalR进行实时通信_1_简单介绍

原文:一步一步学习SignalR进行实时通信_1_简单介绍

一步一步学习SignalR进行实时通信\_1_简单介绍

SignalR


  • 一步一步学习SignalR进行实时通信_1_简单介绍

    • 前言
    • SignalR介绍
    • 支持的平台
    • 相关说明
      • OWIN
    • 结束语
    • 参考文献

前言

本来前几个月想写一系列的关于SignalR的文章,但是由于在做项目,时间非常的紧急,花了1天的时间大致了解了下SignalR,并实现了个在线聊天的小功能,本来记录一系列关于SignalR的文章,没想到写了MVC5使用SignalR进行双向通信(1)之后就停下来了,现在稍微空闲点,抽点时间来完整的学习SignalR。在园子里也有许多关于SignalR的文章,如此篇简单的介绍了下SignalR,并实现了个实时聊天的功能,但是实际上SignalR还有许许多多的东西能够被我们挖掘到,我希望能记录下我详细学习的过程。

SignalR介绍

SignalR是一个框架,它能够有助于我们搭建一个实时互动、多用户的应用程序。它的一个很大的优点是对开发人员是透明的,它会自己决定使用那个技术(长轮询、持久性框架、WebSockets等)最好,并自动管理连接和断开连接。详情请看园子另一篇文章。

SignalR为我们提供了2个不同的抽象级别,分别为persistent connectionsHubs

长篇大论不是我的风格,我更专注于某个技术能实现怎样的功能,我在这里简单的提一下,有这样2个东西存在,这会有助于对SignalR后续的学习。

支持的平台

此篇文章讲的非常详细了,这里也没必要再重复一篇

相关说明

我们使用的是Signal2,与第一个版本可能会有所不同,这里不做讨论。

OWIN

在这里我们都是基于OWIN来是实现的。OWIN大致是如下的结构:

实现了SignalR的结构如图所示:

安装SignalR后相关的程序集

1. OWIN结构

对比起来应该就很好理解了,OWIN实现了一个通用的接口,而SignalR则是根据此接口要求搭建的一套框架,类似的有WebAPI。

看过这两幅图片,那么对OWIN的概念应该就很好理解了。

从第一幅图可以看出,OWIN主要由五部分组成:Host、Server、Middleware、Web framework以及Application

2.详细介绍

在看第二幅图和第三幅图,第三幅图是安装完成SignalR后,这6个包是与SignalR和Owin相关的

  • Host:请求是在哪里执行的,一般来说在IIS上,可以自己搭建在自己控制台应用程序上,具体方法这里有说明。
  • Server:即Microsoft.Owin.Host.SystemWeb或者Microsoft.Owin.HttpListener,它的作用是打开一个端口与客户端进行通信。
  • Middleware:即为Misrosoft.AspNet.SignalR.XXX这是我们所安装的SignalR,如果安装的WebAPI,则可能为Misrosoft.AspNet.WebApi.XXX,他是实现了Owin的一系列框架。
  • Web framework:如我们现在介绍的SignalR或者Web API等。
  • Application:即为我们的项目,可以是MVC、web form或者wpf等。

我的理解是这样的,SignalR有一个核心的服务叫Microsoft.AspNet.SignalR.Core,它通过一个类似于适配器概念Microsoft.AspNet.SignalR.SystemWeb,实现了OWIN的接口,从而进行协同工作。

结束语

本章对于SignalR的大致介绍就到这里,本来不想写概念性的东西,毕竟我是一个注重实现的人,学习有2种方法一种是深入浅出式的,另一种是先实现在深入,以前我可能是第二种形式,但是对于程序员来说不求甚解也不失为一种好办法,毕竟接触一个新的东西,直接深入还是非常困难的。

对着本章有什么不理解也没有大问题,在后面会一步步通过代码实现一些功能。

本文发布至作业部落

参考文献

ASP.NET SignalR系列

SignalR Programming in Microsoft ASP.NET pdf 下载

时间: 2024-10-14 10:06:12

一步一步学习SignalR进行实时通信_1_简单介绍的相关文章

一步一步学习SignalR进行实时通信_8_案例2

原文:一步一步学习SignalR进行实时通信_8_案例2 一步一步学习SignalR进行实时通信\_8_案例2 SignalR 一步一步学习SignalR进行实时通信_8_案例2 前言 配置Hub 建立DrawingHub 页面 javascript 实现效果 结束语 参考文献 前言 这讲分析一个案例,在一个画板上画画实时在其他客户端上显示. 配置Hub 在Startup中进行配置: public void Configuration(IAppBuilder app) { app.MapSign

一步一步学习SignalR进行实时通信_5_Hub

原文:一步一步学习SignalR进行实时通信_5_Hub 一步一步学习SignalR进行实时通信\_5_Hub SignalR 一步一步学习SignalR进行实时通信_5_Hub 前言 Hub命名规则 Hub封装好的常用方法 Hub常用方法解释 保持状态 前后台交互 结束语 参考文献 前言 上一讲,我们简单的介绍了下Hub的配置以及实现方法,这一将我希望把更多的细节梳理清楚,不至于让大家在细节上面摸不着头脑,理解深了,那么做项目自然就会相对轻松一些. Hub命名规则 Hub与Persistent

一步一步学习SignalR进行实时通信_3_通过CORS解决跨域

原文:一步一步学习SignalR进行实时通信_3_通过CORS解决跨域 一步一步学习SignalR进行实时通信\_3_通过CORS解决跨域 SignalR 一步一步学习SignalR进行实时通信_3_通过CORS解决跨域 前言 关于start()的补充 跨域解决方案 JSONP CORS CORS跨域演示 结束语 参考文献 前言 这周工作比较忙,一直没有时间学习SignalR,大致希望一周能写一篇关于SignalR的文章.上一篇用Persistent Connections方式实现了个简单的在线

一步一步学习SignalR进行实时通信_2_Persistent Connections

原文:一步一步学习SignalR进行实时通信_2_Persistent Connections 一步一步学习SignalR进行实时通信\_2_Persistent Connections SignalR 一步一步学习SignalR进行实时通信_2_Persistent Connections 前言 安装 Persistent Connections 映射并配置持久连接 结束语 参考文献 前言 上一篇文章简单的介绍了下SignalR,从此篇文章就开始对SignalR进行剖析.在介绍Persiste

一步一步学习SignalR进行实时通信_7_非代理

目录 一步一步学习SignalR进行实时通信_7_非代理 前言 代理与非代理 建立连接 调用方法 维持状态 从服务器接收 结束语 参考文献 一步一步学习SignalR进行实时通信_7_非代理 标签(空格分隔): SignalR 前言 距离上次写博客已经一个多月了,一直想抽空写,却一直没时间写.现在紧接着要开始毕业设计了,工作的同时还要抽时间完成毕业设计,心也是有些累.由于自己是个.NET迷,自己的工作也是.net开发,老师给的毕业设计百分之八九十都是安卓java相关,虽然之前也学过但是自己还是喜

【web开发学习笔记】Structs2 Result学习笔记(一)简单介绍

Structs2 Result学习笔记(一)简单介绍 问题一 <struts> <constant name="struts.devMode" value="true" /> <package name="resultTypes" namespace="/r" extends="struts-default"> <action name="r1"

【转载】JMeter学习(一)工具简单介绍

JMeter学习(一)工具简单介绍 一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等.JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能.     同时,JMeter可以帮助你对你的应用程序进行回归测试.

Spring学习笔记一(Spring简单介绍)

1.前言 从今天起开始写几篇关于Spring的文章,来总结一下,近来的学习情况,也想与大家分享一下学习Spring的心得和体会.希望大家能够多多指正.  2.Spring简单介绍 上图是有关Spring的整个架构图,从图中我们可以看出,Spring主要包括AOP.数据访问,WEB访问等几大块内容. Spring是一个基于JAVA的轻量级J2EE的应用框架. 那么Spring能干什么呢?目前我们看到市面上有很多的框架,比如Struts2+Spring.Spring+Servlet.Spring+i

Golang学习-第一篇 Golang的简单介绍及Windows环境下安装、部署

序言 这是本人博客园第一篇文章,写的不到位之处,希望各位看客们谅解. 本人一直从事.NET的开发工作,最近在学习Golang,所以想着之前学习的过程中都没怎么好好的将学习过程记录下来.深感惋惜! 现在将Golang的学习点滴记录分享,废话到此,下面进入正文. 注:此文及以后所有内容中的开发平台为:Windows 开发工具为:JetBrains Gogland x64版本 官方下载地址为:https://www.jetbrains.com/go/download/#section=windows