如今的移动应用中消息推送已经成为不可或缺的功能了,这样能够增长与用户的交互。java
使用消息推送的方法有不少,原理大体是:移动端与消息服务器保持一个长链接,一旦服务器有消息就推给客户端,客户端收到消息作相应的处理。android
一、XMPP协议实现的openfire能够做为消息服务器。客户端也有asmack封装好了xmpp协议。openfire提供了一套IM所需的全部功能,并且支持插件形式的二次开发。ios
二、开源项目androidpn,也是实现了XMPP协议。git
三、JPush极光推送。等一系列第三方的推送平台。github
各自的优缺点:数据库
一、openfire提供了IM的全部功能,功能很是强大,可是移动端若是只想集成消息推送的话,openfire就显得非常笨重。并且openfire的二次开发资料不多,通常需针对公司的业务开发,使用公司本身的数据库。服务器端开发成本高,周期长。openfire的并发链接好像也只有5000左右(作的比较好的状况下,通常都达不到这个数)。移动客户端也要根据xmpp协议与openfire服务器进行交互来完成消息推送。因此客户端的开发周期也长。api
二、androidpn也是实现的XMPP,可是只实现了核心的功能,也须要针对公司的业务进行二次开发。基本和openfire的缺点差很少。服务器
三、JPush集成很是简单,客户端和服务端都不须要进行二次开发,只要配置一下就能够了,最多发送消息这块服务端须要调用一下Jpush的接口,就一个http请求,很是简单。并发
一、首先去JPush的开发者官网https://www.jpush.cn/ 注册账号app
二、用刚刚的账号登陆开发者网站
三、点击用户头像下的控制台https://www.jpush.cn/common/apps/
四、建立应用。
五、打开开发者网站的文档选项 http://docs.jpush.cn/display/dev/Index根据里面的集成步骤集成Jpush。
客户端集成完,咱们的移动端的app就能够收到通知和消息了,可是发消息须要到Jpush的开发者网站去发送,这样的话就很不合理。正常状况确定是咱们本身的服务器根据状况发送通知和消息到客户端的。不可能咱们服务端须要发通知和消息的时候须要有我的去打开Jpush的网站去发送通知。
这些状况Jpush已经为咱们想到了,咱们服务器端只要在发通知的地方调用Jpush提供的发布接口就能够了,就是一个HTTP请求而已。
推送接口详细描述:http://docs.jpush.cn/display/dev/Push-API-v3
咱们能够本身写代码发送http请求,这边有一个第三方的开源项目是对Jpush推送接口的封装:https://github.com/jpush/jpush-api-java-client
下载下来将src下的cn.jpush.api文件所有复制到服务端项目中,而且将libs下的jar包加入到工程的build path。
咱们就是推送一条通知或者消息。
代码样例:咱们通常使用cn.jpush.api.JPushClient.sendPush(PushPayload pushPayload)这个方法就够了。
这是推送的一个方法,参数PushPayload能够用来构造通知和消息,而且能够进行细节的设置,好比:platform,alias,tag,消息或是通知。具体能够参考JPushClient类的
sendAndroidNotificationXXXXX和sendAndroidMessageXXXXXX方法,这些方法里面就是构造一个PushPayload。
到此集成结束。