SignalR (一)
关于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 (一)的更多相关文章
- SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]
目录 SignalR系列目录 前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的 ...
- ABP文档 - SignalR 集成
文档目录 本节内容: 简介 安装 服务端 客户端 连接确立 内置功能 通知 在线客户端 帕斯卡 vs 骆峰式 你的SignalR代码 简介 使用Abp.Web.SignalR nuget包,使基于应用 ...
- SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)
SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...
- SignalR代理对象异常:Uncaught TypeError: Cannot read property 'client' of undefined 推出的结论
异常汇总:http://www.cnblogs.com/dunitian/p/4523006.html#signalR 后台创建了一个DntHub的集线器 前台在调用的时候出现了问题(经检查是代理对象 ...
- 基于SignalR实现B/S系统对windows服务运行状态的监测
通常来讲一个BS项目肯定不止单独的一个BS应用,可能涉及到很多后台服务来支持BS的运行,特别是针对耗时较长的某些任务来说,Windows服务肯定是必不可少的,我们还需要利用B/S与windows服务进 ...
- SignalR SelfHost实时消息,集成到web中,实现服务器消息推送
先前用过两次SignalR,但是中途有段时间没弄了,今天重新弄,发现已经忘得差不多了,做个笔记! 首先创建一个控制台项目Nuget添加引用联机搜索:Microsoft.AspNet.SignalR.S ...
- SignalR系列目录
[置顶]用SignalR 2.0开发客服系统[系列1:实现群发通讯] [置顶]用SignalR 2.0开发客服系统[系列2:实现聊天室] [置顶]用SignalR 2.0开发客服系统[系列3:实现点对 ...
- 基于SignalR的消息推送与二维码描登录实现
1 概要说明 使用微信扫描登录相信大家都不会陌生吧,二维码与手机结合产生了不同应用场景,基于二维码的应用更是比较广泛.为了满足ios.android客户端与web短信平台的结合,特开发了基于Singl ...
- XAMARIN.ANDROID SIGNALR 实时消息接收发送示例
SignalR 是一个开发实时 Web 应用的 .NET 类库,使用 SignalR 可以很容易的构建基于 ASP.NET 的实时 Web 应用.SignalR 支持多种服务器和客户端,可以 Host ...
- ABP源码分析三十二:ABP.SignalR
Realtime Realtime是ABP底层模块提供的功能,用于管理在线用户.它是使用SignalR实现给在线用户发送通知的功能的前提 IOnlineClient/OnlineClient: 封装在 ...
随机推荐
- java.lang.IndexOutOfBoundsException: setSpan (35 ... 35) ends beyond length 28
/************************************************************************************* * java.lang.I ...
- caffe测试mnist问题-error while loading shared libraries
问题描述 build/examples/mnist/convert_mnist_data.bin: error while loading shared libraries: libcudart.so ...
- pip模块的使用
安装pip: sudo apt-get install python-pip (python2的安装) sudo apt-get install python3-pip ...
- MyEclipse2014配置Tomcat开发JavaWeb程序JSP以及Servlet
http://blog.csdn.net/21aspnet/article/details/21867241 1.安装准备 1).下载安装MyEclipse2014,这已经是最新版本. 2).下载 ...
- (3)什么是函数(函数的定义、形参、实参、默认形参、可变长函数args|kwargs)
什么是函数 函数是指将一组语句的集合通过一个名字(函数名)封装起来,想要执行这个函数,只需调用其函数名即可 1.减少重复代码 2.使程序变的可扩展 3.使程序变得易维护 定义函数的语法 形参 主要的作 ...
- hdu 5312 dp(背包)、二分图或其他姿势
题意:给出一个二分图(不一定连通),问最多能加多少边,使它仍然是二分图 BC周年庆第四题,貌似终判再终判之后数据还是有问题``` 据说貌似可以用bitset搞,而且姿势优美是正解```然而我还是用的d ...
- java类库 java API jar包 C语言函数库
翁凯说:java的强大是因为类库的强大 C/C++强大是因为函数库 在程序中用到系统提供的标准函数库中的输入输出函数时 应在程序的开头写上一行:#include"stdio.h"或 ...
- hasura 的3factor 架构结论
hasura 是一个很不错的开发团队,开发了好几款,不错的产品,最近的graphql engine 是很热的一款 graphql 引擎,同时团队提出了3factor 系统架构理论 参考网站 https ...
- PowerCollections
Wintellect 的Power collections 库 BigList<String> str = new BigList<String>(); str.Add(&qu ...
- hadoop之 reduce个数控制
1.参数变更1.x 参数名 2.x 参数名 mapred.tasktracker.red ...