标签:android blog http io ar 使用 sp for java
SignalR 是微软的 http 长连接(以下简称长连接)框架,它的出现为我们提供了一套行之有效的实时通信的解决方案.
在http 1.0 时代,preRequest 都会建立新的tcp链接,如果高并请求情况下,抛开其它影响因素(比如服务端的IO操作,db操作等), 其实是比较浪费性能.
那在http 1.1时代,传输层 tcp 请求连接做了优化,有了分组,和并,重用tcp连接通道. 提高了tcp的可靠性及处理效率,但即便如此还是会存在tcp 的三次握手准备.
我们知道http是无状态通信(历史原因),而且是"请求-响应模式".即单工通信. 这是很典型的短连接,但为了重用http的连接通道保持连接的可持续性,减少因为每次创建连接通道而损失的性能,提高响应时间,及时通信,以及节省宽带流量,避免轮询操作,减少不必要服务器资源浪费.长连接(服务推)模式应运而起.
总而言之长连接有两个基本特征:1:带有状态性,2:是一个双工双工通信的过程.
SignalR是Server-to-Client 的结构,它提供了丰富的API及良好的扩展:
1:客户端的代Proxy(Javascript与.net app)
2:客户端及服务端的身份认证
3:服务端的Hub 及 PerisistentConnection API
4:服务端的依赖注入
5:服务端的AOP
6:服务端的宿主工具.
1:浏览器应用包括:web Form ,Mvc ,wcf 等
2:net client application 包括:控制台程序,windows service 等
3:windows phone application
可以看出 SignalR 基本上支持所有的微软的产品终端.除了微软的系统外,同样也支持Android (可参看SignalA)
1:Web Sockets html5 下的双工通信协议,浏览器版本低的话可能不支持.
2:Server-Sent Events 服务推方式,是html5下的一个功能, 基本上浏览器都支持,但IE不支持.
3:Forever Frame 我们常见的通过隐藏iFrame 来于服务端通信,此方式仅仅IE支持,而且要IE8+
4:Ajax Long Polling 异步轮训请求服务端,所有的客户端都支持.
这四种方式根据客户端的环境自动切换(微软已经封装好API,你也可以指定某一种传输方式),这些环境因素包括 浏览器版本,net framework 版本,操作系统.《点击参看官网上平台支持》,
如果使用SignalR 的话建议至少 win7+,iis7+,net framework4.0+;
标签:android blog http io ar 使用 sp for java
原文地址:http://www.cnblogs.com/wangzhiyong/p/4150070.html