atitit.极光消息推送服务器端开发实现推送 jpush v3. 总结o7p
atitit.极光消息推送服务器端开发实现推送 jpush v3. 总结o7p
1. 推送所设计到底功能
1.1. 内容压缩
1.2. 多引擎
2. reg ,设置appkey and pwdkey
3. 下载server sdk v3
https://github.com/jpush/jpush-api-java-client
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
4. push推送样例
以下片断来自项目代码里的文件:cn.jpush.api.examples.PushExample
JPushClient jpushClient = new JPushClient(masterSecret, appKey, 3);
// For push, all you need do is to build PushPayload object.
PushPayload payload = buildPushObject_all_all_alert();
try {
PushResult result = jpushClient.sendPush(payload);
LOG.info("Got result - " + result);
} catch (APIConnectionException e) {
// Connection error, should retry later
LOG.error("Connection error, should retry later", e);
} catch (APIRequestException e) {
// Should review the error, and fix the request
LOG.error("Should review the error, and fix the request", e);
LOG.info("HTTP Status: " + e.getStatus());
LOG.info("Error Code: " + e.getErrorCode());
LOG.info("Error Message: " + e.getErrorMessage());
}
进行推送的关键在于构建一个 PushPayload 对象。以下示例一般的构建对象的用法。
5. Code
Pushx。Java
private static void single_test(final double i) throws APIConnectionException,
APIRequestException {
core.execMeth_Ays(new Runnable() {
@Override
public void run() {
String r = "";
try {
r = new pushX().push(".", 1099);
} catch (APIConnectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(String.valueOf(i) + "::" + r);
}
}, " threadName");
}
public String push(final String txt, final Object... target)
throws APIConnectionException, APIRequestException {
// attilax 老哇的爪子 X5042 o7m // k_56_44 o80 老哇的爪子 Attilax
core.log("---- o8q14 add act n seruinfo before txt:" + txt);
core.log("----add act n seruinfo before len:"
+ String.valueOf(txt.length()));
final String s = jpushCompressor.kmprs(txt);
core.log("----add act n seruinfo aft len:" + String.valueOf(s.length()));
logger.info(txt + "\r\ntarget:" + StringUtils.join(target, ",") + " ");
// new com.attilax.tryX<String>() {
// @Override public String $$(Object t) throws Exception {
// attilax 老哇的爪子 2_q_9 o86
setInvokeTimes();
try {
PushExample.SendPush_msgFmt(s, core.toStrArr(target));
} finally {
// this.respMsg=r;
this.sendMsg = PushExample.sendMsg_thrdloc.get();
}
// catch (APIConnectionException e) {
// respMsg="APIConnectionException";
// }
// catch (APIRequestException e) {
// respMsg=
// }
// return null;
// }
// }.$("");
new com.attilax.tryX<String>() {
@Override
public String $$(Object t) throws Exception {
// attilax 老哇的爪子 2_q_9 o86
// PushExample.SendPush(s, core.toStrArr(target));
return null;
}
}.$("");
String r = PushExample.rzt.get();
return r;
}
最新文章
- JAVA BigDecimal 小数点处理
- loadrunner录制脚本如何选择使用get请求和post请求的方式
- Bitmap动画
- JS输入框邮箱自动提示(带有demo和源码)(转载)
- spring注入简记
- python 赋值,交换值理解
- 解决 iReport 生成 pdf 时显示不出中文的问题
- iOS中为网站添加图标到主屏幕以及增加启动画面
- SecureCRT自动断开连接的问题
- [Hadoop源码解读](四)MapReduce篇之Counter相关类
- OD: Windows Driver Fuzz
- IIC 概述之源码仿真
- Java学习作业(14.4.21)
- Redux中的重要概念
- RabbitMQ教程C#版 - Hello World
- ZooKeeper的三种典型应用场景
- ASP.NET Core 项目简单实现身份验证及鉴权
- VC操作excel
- Linux——入门命令
- python基础提高演练(名片管理系统的开发)
热门文章
- FFT&;NTT&;多项式相关
- SD 一轮集训 day1 carcar
- hadoop运行常见错误
- INLINE-BLOCK和FLOAT(二)(转)
- oop 知识点回顾
- IO多路复用 select、poll、epoll
- HDU 3389 Game(博弈)
- django+celery+redis实现运行定时任务
- Solr6.6.0 用 SimplePostTool与界面dataimport索引方式区别
- Docker解析及轻量级PaaS平台演练(三)--Dockerfile编写