消息推送(本地、远程推送)

2020-03-20  本文已影响0人  南山码僧

本地推送

概述:

本地推送主要运用在系统工具中,如闹钟、生日提醒等。

具体步骤:

1:实例化一个推送对象

2:为推送对象设置各种需要的属性

3:添加推送对象

远程推送

概述:

由远程服务器推送数据到客户端。部分情况需要开发者账号申请证书,生成配置文件等。

实现方式具体有一下几种:

1:短轮询

概念:就是客户端定时的向服务器发送请求询问是否有数据更新,不论有否更新,服务器都即时给出响应结果。

优点:后端程序编写容易

缺点:大多数请求都是无用的,浪费了带宽和服务器资源。数据更新不及时。

实际应用:适用于小型应用。

2:长轮询

概念:就是客户端向服务端发送请求询问是否有数据更新,服务端将请求挂起,然后查看服务端是否有更新。如果有更新就响应客户端结果,如果没有就一直挂起,直到超时。然后客户端处理完响应结果(包括超时)后再次发送请求以此循环。

优点:在无消息的情况下不会频繁请求,耗费资源小。

缺点:服务器挂起请求会消耗资源 ,返回数据顺序无法保证,难以维护管理。

实际应用:WebQQ、Hi网页版、Facebook IM。

3:长连接

概念:客户端向服务端发起请求tcp连接后,服务端不关闭tcp连接,保持持久性连接状态。

⭕️ 隐藏的iframe

描述:在页面中嵌入一个隐藏的iframe, 将这个iframe的src属性设置为一个长连接请求或是xhr请求,服务端就能不断的往客户端传入数据了。

⭕️ H5 WebSocket 

描述:WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。

优点:消息即时到达,不发送无用连接请求;管理起来也相对方便。

缺点:服务器维护一个长连接会增加开销。

实际应用:Gmail聊天

4:Flash Socket

概念:在页面中嵌入一个使用了Socket类的Flash程序,JS通过调用此Flash程序的Socket接口与服务器接口进行通信,JS在收到服务器传来的消息时控制页面的显示。

优点:即时通信。

缺点:客户端需要安装Flash插件;非HTTP协议,无法自动穿越防火墙。

实际应用:网络互动游戏。 

5:原生推送 (如IOS的PushMeBaby)

上一篇下一篇

猜你喜欢

热点阅读