JPush 服务器消息推送

今天研究了一下JPush推送API调用,JPush即极光推送,其有免费和收费两种模式。免费的有所限制,如:推送频率,时间延迟率,成功率等,总之天下

没有免费的午餐,免费的肯定服务就不会好到哪里去。下面我们来写个小例子,模仿一下服务器推送的效果。

首先从极光推送的官网上下载demo,网址http://docs.jpush.cn/display/dev/Index,将服务器端的demo和android端的demo下载下来。接下来就进行服务器

端的代码编写,其实服务器端的demo,我们只需要搭建一个web工程,然后将他的服务器端的推送代码复制到相应的类中就行。

一:在其官网进行注册,获取APIKey,和API MasterSecret。

具体的注册步骤就不详述了,但是有一点我要吐槽一下,在注册信息的填写时,每个信息栏能不能稍微用文字说明一下,最后那个信息栏刚开始真是不知

填什么。

二:服务器端的代码编写:

1、在MyEclipse中新建一个web工程,在他的官网gitHub上,有两种方式进行工程建立,一种是maven,另外一种则是jar包的方式,因为熟悉所以就选择

后一种吧。将相应的jar包复制进web-info目录下的lib文件夹中。将实例工程中的JPushClientExample类复制到相应的包中。

 

2、实现serlvet监听类,新建ListenterMain类实现ServletContextListener接口,在contextInitialized调用推送方法。

public class ListenterMain implements ServletContextListener
{

	public void contextDestroyed(ServletContextEvent arg0) {
		// TODO Auto-generated method stub
		
	}

	public void contextInitialized(ServletContextEvent arg0) {
		System.out.println("==========");
		JPushClientExample.testMain();	
	}
}

3、编写web.xml文件,注册监听。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<listener>
		<listener-class>com.lonuery.jpush.ListenterMain</listener-class>
	</listener>
</web-app>

4、编写推送方法。

	//推送样例
	private static void testSend() {
        JPushClient jpushClient = new JPushClient(masterSecret, appKey, timeDelay, DeviceEnum.Android, false);
        
		/*NotificationParams params = new NotificationParams();
		params.setReceiverType(ReceiverTypeEnum.TAG);
		params.setReceiverValue(TAG);*/
				
		/*CustomMessageParams params = new CustomMessageParams();
		params.setReceiverType(ReceiverTypeEnum.TAG);
		params.setReceiverValue(TAG);*/

		//MessageResult msgResult = jpushClient.sendNotification(CONTENT, params, null);//推送通知给指定的app		
		//MessageResult msgResult = jpushClient.sendCustomMessage(TITLE, CONTENT, params, null);//推送消息给指定的app
		
		//MessageResult msgResult = jpushClient.sendCustomMessageAll(TITLE, CONTENT);//
		MessageResult msgResult = jpushClient.sendNotificationAll(CONTENT);
        LOG.debug("responseContent - " + msgResult.responseResult.responseContent);
		
        if(msgResult!=null){
	        if (msgResult.isResultOK()) {
		        LOG.info("msgResult - " + msgResult);
		        LOG.info("messageId - " + msgResult.getMessageId());
			} else {
			    if (msgResult.getErrorCode() > 0) {
			        //业务异常
			        LOG.warn("Service error - ErrorCode: "
			                + msgResult.getErrorCode() + ", ErrorMessage: "
			                + msgResult.getErrorMessage());
			    } else {
			        //未到达JPush
			        LOG.error("Other excepitons - "
			                + msgResult.responseResult.exceptionString);
			    }
			}
        }else{
        	System.out.println("MessageResult msgResult is null");
        }
		System.out.println("是空空的黑色");
	}

5、在这个web工程部署到Tomcat中,启动Tomcat。

三:android客户端编写

客户端无需我们重新编写,下载他的android demo,导入到Eclipse中,将AndroidManifest.xml中名为JPUSH_APPKEY改为之前注册的app的AppKey就可以了。

下面看下效果:

服务器端代码我已经上传到csdn上,欢迎下载:http://download.csdn.net/detail/zkw12358/7359315

你可能感兴趣的:(JPush 服务器消息推送)