消息推送这个东西从有了互联网就出现了,但直到出现了HTML5的Websocket,这个东西才算真的,更好了获得了解决,由于以前的方式,咱们公认为,它对服务器的压力太大了,客户端不断的在作polling工做,直到服务端有了消息,而后将消息获取过来,这种方式,始终是被动式的,而且,经过浏览器发送的请求,在HTML5出现以前都是HTTP方式的,这种一个请求,一个响应的方式不能很好的实现一个长连接的保持,直到出现了websocket,它能够使一个客户端与服务端保持一个长连接,这事实上,也是实现服务器消息推送到客户端的基础。javascript
2000年以前为第一波消息推送技术,使用的概念叫Webcasting。大体思想就是用户来服务端注册一个或者多个通道channel,而后服务端肯定给某些个channel或某个channel发送消息。2000到2007年最火的词叫comet,好比有Polling(这个是最普通的轮询),Long Polling(把HTTP的响应锁住,当有消息时,经过channel返回客户端),可是无论什么技术,都仅限浏览器,而又由于浏览器只能发起HTTP的单向的通讯请求,因此,人们就想起了更稳定的长连接方式socket,可是Socket方式是走TCP协议的,浏览器如何能发起TCP链接呢?HTML5的Websocket技术就解决了这个问题。java
Websocket实际上是一些老技术的结合,自己并非一种新的技术,可是一种新的协议,它的地址形式如ws://192.168.0.3:8090,wss://192.168.0.3:8090,后面的地址形式是加密的,就是HTTP协议地址有http和https同样。web
Websocket它首先向服务器发一个HTTP请求,与服务器握手成功后,再以TCP的方式进行数据传输,因此Websocket实际上是结合了HTTP和TCP协议的一种新的协议方式,但自己的技术是老的,呵呵。ajax
WebSocket 规范的目标是在浏览器中实现和服务器端双向通讯。双向通讯能够拓展浏览器上的应用类型,例如实时的数据推送(股票行情)、游戏、聊天等.浏览器
第一回 认识Websocket及原来的消息推送方式服务器
第二回 SignalR的出现,改变了这一切websocket
第三回 SignalR与MVC搭建消息推送环境asp.net
http://www.asp.net/signalrsocket
http://baike.baidu.com/view/3623887.htmflex