混合移动应用的消息推送之websocket

Posted 前端开发支猿团

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了混合移动应用的消息推送之websocket相关的知识,希望对你有一定的参考价值。

混合移动应用消息推送

混合应用一般使用Cordova之类的中间件,以WebView作为用户界面层,以javascript作为基本逻辑,以及和中间件通讯,再由中间件访问底层API的方式,进行应用开发。开发时可能不采用或者大部分不采用原生语言,但是却有所有原生应用的特性。而开发消息推送功能时,我们就既可以使用Native App的系统自带推送如GCM和APNS,又可以使用基于html5的websocket推送。

对于混合应用的websocket消息推送,其基本原理如下:

图1. Hybrid app websocket工作流程



而原生应用的消息推送,其基本原理如下图:

图2.原生应用程序消息推送工作流程


目前后者主要应用于原生应用,而前者由于开发周期短,跨平台性好,维护成本低,一般可以用于混合应用的消息推送。基于websocket的消息推送,我们就可以自己去实现消息推送的服务端,这样我们就掌握了推送服务的主动权,对于安全性极高的企业,websocket推送无疑是最好的选择,因为如果使用GCM或者APNS推送,我们不会不会信息发送到GCM服务器或者APNS服务器,再由GCM或者APNS服务端转发到客户端,信息安全性不得而知。一旦推送服务器出现异常,我们的消息推送将变得非常被动。但是GCM和APNS也是使用长连接进行消息推送,而且一个手机上的所有应用共用一个长连接,对于手机性能将会有极大的帮助。两种推送各有利弊,读者可自选选择。本文将针对websocket的消息推送进行一系列介绍。

Websocket接口简介

WebSocket的实现分为客户端和服务端两部分,客户端(通常为浏览器)发出WebSocket连接请求,服务端响应,实现类似TCP握手的动作,从而在浏览器客户端和WebSocket服务端之间形成一条HTTP长连接快速通道。两个之间后续进行直接的数据互相传送,不再需要发起连接和响应。同时两者都可以关闭这个长连接。我们正是利用了混合移动应用的webview可以支持websocket的这个特性来实现服务器端对客户端的一个消息推送.Websocket针对客户端而言,性能,资源使用以及及时性要比传统的轮询更好。

Websocket客户端API

对于websocket客户端,目前主流的移动操作系统的webview层都已经支持websocket服务。以下列举了常见的移动系统支持情况:

表1.主流移动系统的webview对websocket的支持情况
移动系统 版本
ios IOS 5+
android Android 4.4+
Windows手机 Windows Phone 8+

常见浏览器和移动系统的webview都已经实现了w3规范的websocket接口,具体接口参考清单1

清单1. Websocket客户端接口


[Constructor(in DOMString url, in optional DOMString protocol)]

以上是关于混合移动应用的消息推送之websocket的主要内容,如果未能解决你的问题,请参考以下文章

即时通讯开发如何在WebSocket基础上实现Hybrid移动应用的消息推送

消息推送二 之webSocket

spring boot项目之webSocket消息推送

Java web 服务端消息推送用啥比较好

即时通讯开发中WebSocket和SSE技术如何实现Web端消息推送

html5消息推送功能怎么做

(c)2006-2024 SYSTEM All Rights Reserved IT常识