消息推送从始至终~目录

认识它

消息推送这个东西从有了互联网就出现了,但直到出现了HTML5的Websocket,这个东西才算真的,更好了得到了解决,因为之前的方式,我们公认为,它对服务器的压力太大了,客户端不断的在做polling工作,直到服务端有了消息,然后将消息获取过来,这种方式,始终是被动式的,并且,通过浏览器发送的请求,在HTML5出现之前都是HTTP方式的,这种一个请求,一个响应的方式不能很好的实现一个长链接的保持,直到出现了websocket,它可以使一个客户端与服务端保持一个长链接,这事实上,也是实现服务器消息推送到客户端的基础。

它的发展历史

2000年之前为第一波消息推送技术,使用的概念叫Webcasting。大致思想就是用户来服务端注册一个或者多个通道channel,然后服务端确定给某些个channel或某个channel发送消息。2000到2007年最火的词叫comet,比如有Polling(这个是最普通的轮询),Long Polling(把HTTP的响应锁住,当有消息时,通过channel返回客户端),但是不管什么技术,都仅限浏览器,而又因为浏览器只能发起HTTP的单向的通信请求,所以,人们就想起了更稳定的长链接方式socket,但是Socket方式是走TCP协议的,浏览器如何能发起TCP连接呢?HTML5的Websocket技术就解决了这个问题。

新协议,老技术

Websocket其实是一些老技术的结合,本身并不是一种新的技术,但是一种新的协议,它的地址形式如ws://192.168.0.3:8090,wss://192.168.0.3:8090,后面的地址形式是加密的,就是HTTP协议地址有http和https一样。

Websocket它首先向服务器发一个HTTP请求,与服务器握手成功后,再以TCP的方式进行数据传输,所以Websocket其实是结合了HTTP和TCP协议的一种新的协议方式,但本身的技术是老的,呵呵。

百度百科对websocket的阐述

目标

WebSocket 规范的目标是在浏览器中实现和服务器端双向通信。双向通信可以拓展浏览器上的应用类型,例如实时的数据推送(股票行情)、游戏、聊天等.

背景

在浏览器中通过http仅能实现单向的通信,comet可以一定程度上模拟双向通信,但 效率较低,并需要服务器有较好的支持; flash中的socket和xmlsocket可以实现真正的双向通信,通过 flex ajax bridge,可以在javascript中使用这两项功能. 可以预见,如果websocket一旦在浏览器中得到实现,将会替代上面两项技术,得到广泛的使用.面对这种状况,HTML5定义了WebSocket协 议,能更好的节省服务器资源和带宽并达到实时通讯。

原理

WebSocket protocol 是HTML5一种新的协议(protocol)。它是实现了浏览器与服务器全双工通信(full-duplex)。

现很多网站为了实现即时通讯(real-time),所用的技术都是轮询(polling)。轮询是在特定的的时间 间隔(time interval)(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTP request的模式带来很明显的缺点 – 浏览器需要不断的向服务器发出请求(request),然而HTTP request 的header是非常长的,里面包含的数据可能只是一个很小的值,这样会占用很多的带宽。

而最比较新的技术去做轮询的效果是Comet – 用了AJAX。但这种技术虽然可达到全双工通信,但依然需要发出请求(reuqest)。

在 WebSocket API,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。在此 WebSocket 协议中,为我们实现即时服务带来了两大好处:

1. Header

互相沟通的Header是很小的-大概只有 2 Bytes

2. Server Push

服务器可以主动传送数据给客户端

目录

第一回  认识Websocket及原来的消息推送方式

第二回  SignalR的出现,改变了这一切

第三回  SignalR与MVC搭建消息推送环境

相关参考文章

http://www.asp.net/signalr

http://baike.baidu.com/view/3623887.htm

本文转自博客园张占岭(仓储大叔)的博客,原文链接:消息推送从始至终~目录,如需转载请自行联系原博主。

时间: 2024-09-29 08:51:57

消息推送从始至终~目录的相关文章

分分钟搞定IOS远程消息推送

分分钟搞定IOS远程消息推送 一.引言 IOS中消息的推送有两种方式,分别是本地推送和远程推送,本地推送在http://my.oschina.net/u/2340880/blog/405491这篇博客中有详细的介绍,这里主要讨论远程推送的流程与配置过程. 二.远程推送机制的原理 1.从一张很火的图说起 搜索IOS远程推送,你总能看到一张如下的流程示意图,因为这张图确实很火,所以我也将它引用在此: 这张图示意的很清晰,大致意思是这样:你的应用服务端将消息发送到apple的APNS服务器,APNS服

asp.net mvc实现简单的实时消息推送_实用技巧

因为项目需要,需要在网页上实现消息的推送.在百度上搜索了一下,发现实现网页上的消息推送,可以使用asp.net 中的SignalR类库,当然也可以使用H5的WebSocket  Ajax的轮回.当然此处我们使用asp.net 中的SignalR类库.因为它可以实现网页上消息的实时推送.什么是实时推送呢,我简单的说一下我个人的理解吧.实时:在同一时间类发生的事情,当然在计算机中并不是绝对的实时,因为CPU在同一时间片只能处理一个任务,那么这个时候疑问又来了? 我们平时使用电脑又上网,又听音乐是如何

ios入门之消息推送详解

前言 在去年的苹果大会上,苹果带来的iOS 10 系统中将之前繁杂的推送通知统一成UserNotifications.framework 来集中管理和使用通知功能,还增加一些实用的功能--撤回单条通知.更新已展示通知.中途修改通知内容.在通知中显示多媒体资源.自定义UI等功能. 那么在ios10之前,ios的消息推送是怎么分类的呢? ios 10之前 在ios之前,iOS推送分为Local Notifications(本地推送) 和 Remote Notifications(远程推送). 本地推

Android应用中消息推送完美方案分享

1.消息推送基础 消息推送,就是在互联网上通过定期传送用户需要的信息来减少信息过载的一项新技术.推送技术通过自动传送信息给用户,来减少用于网络上搜索的时间.它根据用户的兴趣来搜索.过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息 当我们开发需要和服务器交互的移动应用时,基本上都需要和服务器进行交互,包括上传数据到服务器,同时从服务器上获取数据. 一般情况下,客户端与服务器之间通讯客户端是主动的,但这就存在一个问题就是一旦服务器数据有更新或者服务器要下发通知给客户端只能等客户端连接的

轻松搞定iOS远程消息推送_IOS

一.引言 IOS中消息的推送有两种方式,分别是本地推送和远程推送,本地推送在http://www.jb51.net/article/93602.htm这篇博客中有详细的介绍,这里主要讨论远程推送的流程与配置过程. 二.远程推送机制的原理 1.从一张很火的图说起搜索IOS远程推送,你总能看到一张如下的流程示意图,因为这张图确实很火,所以我也将它引用在此: 这张图示意的很清晰,大致意思是这样:你的应用服务端将消息发送到apple的APNS服务器,APNS服务器将消息推送到指定的Iphone,最后由I

Android消息推送:手把手教你集成小米推送(附demo)_Android

前言 在Android开发中,消息推送功能的使用非常常见. 为了降低开发成本,使用第三方推送是现今较为流行的解决方案. 今天,我将手把手教大家如何在你的应用里集成小米推送 目录 1. 官方Demo解析 首先,我们先对小米官方的推送Demo进行解析. 请先到官网下载官方Demo和SDK说明文档 1.1 Demo概况 目录说明: DemoApplication类 继承自Application类,其作用主要是:设置App的ID & Key.注册推送服务 DemoMessageReceiver类 继承自

Android消息推送:手把手教你集成小米推送(附demo)

前言 在Android开发中,消息推送功能的使用非常常见. 为了降低开发成本,使用第三方推送是现今较为流行的解决方案. 今天,我将手把手教大家如何在你的应用里集成小米推送 目录 1. 官方Demo解析 首先,我们先对小米官方的推送Demo进行解析. 请先到官网下载官方Demo和SDK说明文档 1.1 Demo概况 目录说明: DemoApplication类 继承自Application类,其作用主要是:设置App的ID & Key.注册推送服务 DemoMessageReceiver类 继承自

tigase 消息推送-tigase-server运行报空指针

问题描述 tigase-server运行报空指针 如题通过下载最新版的tigase-server 7.0.1.exe 解压jar 运行安装...启动时报错通过Pandion客户端无法连接,求大神指点!主要是做消息推送 !

如何去掉WPS 2009右上角消息推送条

WPS2009是一款非常不错的办公软件,尤其是个人版的免费开放,更是圆了人们的软件正版化的梦想,从此不再受版权困扰. 由于WPS个人版是一款免费办公软件,所以在软件中适当添加些网站宣传大家都是可以理解的,只是有时由于WPS推送的消息内容较长,造成与菜单栏及按钮紧密接触(如图01),有时在文档操作中误点后,会自动打开浏览器转到相关网页,遮挡住正在编辑的文档,还要将其关闭才能继续操作,这无形中就对人们的心情造成一定的影响.推送条虽说有时可以指向WPS社区的某一主题,会对人们的操作起到一个提示,但毕竟