zoukankan      html  css  js  c++  java
  • 一步一步学习SignalR进行实时通信_1_简单介绍

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

    标签(空格分隔): SignalR


    前言

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

    SignalR介绍

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

    SignalR1

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

    SignalR2

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

    支持的平台

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

    相关说明

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

    OWIN

    在这里我们都是基于OWIN来是实现的。OWIN大致是如下的结构:
    SignalR3
    实现了SignalR的结构如图所示:
    SignalR4
    安装SignalR后相关的程序集
    SignalR5-OWIN

    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 下载

  • 相关阅读:
    .NET基础示例系列之十二:DLLImport
    .NET基础示例系列之二:Socket
    Qt之msvcversion.conf loaded but QMAKE_MSC_VER isn‘t set
    Ubuntu安装sshd
    Quick工程设置exe图标
    git修改文件之后上传
    VS里打开Qt的pro工程
    QtQWebEngineView显示百度网页
    在gitte建立新仓库并上传本地工程
    Qt的qDebug打印加颜色
  • 原文地址:https://www.cnblogs.com/owenzh/p/11163059.html
Copyright © 2011-2022 走看看