关于SignalR

因近期要在项目中使用 SignalR 来开发实时web 程序,可在这之前,对SignalR 的了解并不是很多,甚至不知道 SignalR 到底是用来干什么的,可是在经过这段时间的学习和做的一些SignalR 项目,对 SignalR 有了一些了解,以下是我自己对 SignalR 的理解。

ASP.NET  SignalR 是一个为 ASP.NET 开发人员的库,简化了将实时 web 功能添加到应用程序的过程,可用于添加任何需要实时交互的web 程序,或全新类型的 web 应用程序需要高频率更新在服务器上,使客户机与服务器能够双向通信,并保证连接是持续的。例如在线聊天室和在线股票。

SignalR会自动管理客户端连接,允许服务端向所有客户端推送信息,也可以向特定的客户端发送信息。客户端与服务商之间的链接是持久化的,不像每次都开启一个新链接的传统HTTP连接方式。

SignalR 支持"服务器推送"功能,可由服务器代码推送内容给连接客户端立即可用,而不是服务器等待客户端请求新的数据,即请求-响应 。以通过服务总线、SQL SERVER数据库或Redis扩容至数千客户端。

SignalR是开源的,可以通过Github获取。获取地址:

SignalR 提供了简单的 API ,可通过在浏览器中使用 javascript 函数来进行调用从服务器端.NET 代码的服务器到客户端的远程过程调用 (RPC),SignalR 还包括用于连接管理的 API (例如,连接和断开连接事件和分组连接。

SignalR 在可用,使用新的 WebSocket 传输和回退到较旧的运输,在必要时。虽然您肯定可以编写您的应用程序直接使用 WebSocket,使用大量的额外的功能,您将需要实现已经将被做为你的 SignalR 手段。最重要的是,这意味着您可以编写应用程序,利用 WebSocket,而不必担心为旧式客户端创建单独的代码路径。 SignalR 也盾牌你不必担心对 WebSocket,更新,因为 SignalR 将继续更新,以支持变化基础传输协议,提供您的应用程序跨 WebSocket 版本一致的接口。

当然,您可以创建一个使用 WebSocket 单独的解决方案, SignalR 提供的所有功能,您将需要自己写的如回退到其他的交通工具和修改您的应用程序更新到 WebSocket 实现。   SignalR 连接

SignalR 连接为 HTTP开始,然后提升到 WebSocket 连接,并自动检查webSocket是否可用。WebSocket 是理想的传输协议, SignalR可使服务器的内存最有效的利用,具有最低的延迟,和最基本的功能 (比如全双工通信客户端和服务器之间),但它也有最严格的要求: WebSocket 要求服务器使用 Windows Server 2012 或 Windows 8 和.NET 框架 4.5。如果不满足这些要求, SignalR 将尝试使用其他的传输协议,使其连接。

使用HTML 5

Signalr的全双工通信功能取决于对HTML 5的支持。如果客户端浏览器不支持 HTML 5 标准,将使用 TCP 协议。  WebSocket(如果服务器和浏览器支持 Websocket)。WebSocket 是建立真正的全双工通信协议,双向连接,是客户端和服务器之间的唯一的持久连接。然而,WebSocket 也有最严格的要求 ;它仅完全支持较高版本的Internet Explorer Google Chrome、 火狐浏等览器,并只在其他浏览器 Safari 已经部分实现。

服务器发送事件,也称为 EventSource (如果浏览器支持服务器发送事件, Internet Explorer 除外)。

 

SignalR (一)的更多相关文章

  1. SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]

    目录 SignalR系列目录 前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的 ...

  2. ABP文档 - SignalR 集成

    文档目录 本节内容: 简介 安装 服务端 客户端 连接确立 内置功能 通知 在线客户端 帕斯卡 vs 骆峰式 你的SignalR代码 简介 使用Abp.Web.SignalR nuget包,使基于应用 ...

  3. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  4. SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论

    异常汇总:http://www.cnblogs.com/dunitian/p/4523006.html#signalR 后台创建了一个DntHub的集线器 前台在调用的时候出现了问题(经检查是代理对象 ...

  5. 基于SignalR实现B/S系统对windows服务运行状态的监测

    通常来讲一个BS项目肯定不止单独的一个BS应用,可能涉及到很多后台服务来支持BS的运行,特别是针对耗时较长的某些任务来说,Windows服务肯定是必不可少的,我们还需要利用B/S与windows服务进 ...

  6. SignalR SelfHost实时消息,集成到web中,实现服务器消息推送

    先前用过两次SignalR,但是中途有段时间没弄了,今天重新弄,发现已经忘得差不多了,做个笔记! 首先创建一个控制台项目Nuget添加引用联机搜索:Microsoft.AspNet.SignalR.S ...

  7. SignalR系列目录

    [置顶]用SignalR 2.0开发客服系统[系列1:实现群发通讯] [置顶]用SignalR 2.0开发客服系统[系列2:实现聊天室] [置顶]用SignalR 2.0开发客服系统[系列3:实现点对 ...

  8. 基于SignalR的消息推送与二维码描登录实现

    1 概要说明 使用微信扫描登录相信大家都不会陌生吧,二维码与手机结合产生了不同应用场景,基于二维码的应用更是比较广泛.为了满足ios.android客户端与web短信平台的结合,特开发了基于Singl ...

  9. XAMARIN.ANDROID SIGNALR 实时消息接收发送示例

    SignalR 是一个开发实时 Web 应用的 .NET 类库,使用 SignalR 可以很容易的构建基于 ASP.NET 的实时 Web 应用.SignalR 支持多种服务器和客户端,可以 Host ...

  10. ABP源码分析三十二:ABP.SignalR

    Realtime Realtime是ABP底层模块提供的功能,用于管理在线用户.它是使用SignalR实现给在线用户发送通知的功能的前提 IOnlineClient/OnlineClient: 封装在 ...

随机推荐

  1. mysql命令小结

    MySQL 数据库常用命令 1.MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删 ...

  2. ODBC的基础架构

    *) 基本概念:1. 应用程序(Application)2. ODBC驱动管理器(ODBC Driver Manager) 负责管理应用程序和驱动程序间的通信,主要功能包括:解析DSN (数据源名称, ...

  3. 【error】segmentation fault分析

    前言 调试代码的时候,可能会出现segmentation fault的bug,很难找到原因,在此总结一下可能的原因. SIGSEGV 原因分析 1.程序中的变量没有进行检查: 比如,没有对变量的大小进 ...

  4. MySQL设置默认编码

    查看默认编码:show variables like "char%" MySQL5.5以下版本: 1.打开配置文件 2.在[client]和[mysqld]字段下面均添加defau ...

  5. 一致性哈希算法(Consistent Hashing Algorithm)

    一致性哈希算法(Consistent Hashing Algorithm) 浅谈一致性Hash原理及应用   在讲一致性Hash之前我们先来讨论一个问题. 问题:现在有亿级用户,每日产生千万级订单,如 ...

  6. CTF-练习平台-Misc之 猜?

    六.猜? 打开图片后发现是一个半个脸被遮住的美女,再联系到题目是“猜”,答案又是一个人的名字全拼,所以熟悉的人都知道这是刘亦菲,把拼音输进去就可以啦.

  7. 【java规则引擎】《Drools7.0.0.Final规则引擎教程》第4章 4.2 activation-group& dialect& date-effective

    转载至:https://blog.csdn.net/wo541075754/article/details/75511887 activation-group 该属性将若干个规则划分成一个组,统一命名 ...

  8. <script>标签里的defer和async属性 区别(待补充)

    defer与async的区别(表格显示): table th:first-of-type { width: 150px; } table th:nth-of-type(2) { } 区别 defer ...

  9. C#继承基本控件实现自定义控件 (转帖)

    自定义控件分三类: 1.复合控件:基本控件组合而成.继承自UserControl 2.扩展控件:继承基本控件,扩展一些属性与事件.比如继承Button 3.自定义控件:直接继承自Control 第一种 ...

  10. PHP中文件类型 文件属性 路径以及 文件相关的函数

    一: 文件类型判断: 1.is_dir()  判断是不是目录 2.is_file() 判断是不是文件 3.is_executable() 判断是不是可执行文件 4.is_readable()  判断是 ...