1 效果如何
速度不错,我测试时每次平均不到0.5秒。基础使用免费,高端使用收费(免费的每分钟有最多推送次数限制,收费的估计可以提高限制次数)。提供推送校验服务(用于验证推送调用是否能够成功)。
2 总结
2.1 极光推送提供JMessage 和 JPush两种服务,它们的关系如下:
JMessage 以 JPush 技术作为基础,共享 JPush 的网络长连接。在保留了 JPush 推送全部功能的基础上增加了 IM 功能。
集成 JMessage 服务的应用,从客户端 SDK,到服务端 REST API,Web 控制台,都具备并且兼容 JPush 的全部功能。
JMessage 与 JPush 的区别
JPush | JMessage | |
---|---|---|
使用场景 | 应用推送 | IM聊天、社交 |
面向对象 | 设备 | 用户、帐号 |
消息对象 | App 运营人员或者 App Server 向用户推送 | 用户之间互相交流 |
发送方式 | 支持广播、Tag,或者单设备 | 单聊、群群 |
JMessage 以 IM 使用场景出发,面向用户根据登录帐号来收发消息;而 JPush 则满足推送场景,面向移动设备,根据设备的标签以及使用属性进行推送[1]。
按我的理解Jpush就是推送,而JMessage可以推送也可以聊天。
2.2 极光推送(Jpush)总结
支持设备码和用户码以及标签这三种方式来推送,对应的支持点对点、点对多,点对群,这三种方式。具体请看官方文档。
http://docs.jpush.io/client/android_api/#api_1
2.2.1 服务端代码
import cn.jpush.api.JPushClient;
import cn.jpush.api.common.resp.APIConnectionException;
import cn.jpush.api.common.resp.APIRequestException;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.Notification;
public class Jpush {
public static final String ALERT = "Test from API Example - alert";
private static final String appKey = "*******************";
private static final String masterSecret = "*********************";
public static void main(String[] args) {
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);
System.out.println("Got result - " + result);
} catch (APIConnectionException e) {
// Connection error, should retry later
System.out.println("Connection error, should retry later");
} catch (APIRequestException e) {
// Should review the error, and fix the request
System.out.println("Should review the error, and fix the request");
System.out.println("HTTP Status: " + e.getStatus());
System.out.println("Error Code: " + e.getErrorCode());
System.out.println("Error Message: " + e.getErrorMessage());
}
}
public static PushPayload buildPushObject_all_all_alert() {
return PushPayload.alertAll(ALERT);
}
public static PushPayload buildPushObject_all_alias_alert() {
return PushPayload.newBuilder()
.setPlatform(Platform.all())
.setAudience(Audience.alias("huawei"))
.setNotification(Notification.alert(ALERT))
.build();
}
}
2.2.2 Android客户端
你在极光建立应用的时候,可以自助下载。
3 项目
由于官方接口随时可能变化,请去官方下载。
4 不清楚的地方
IM和Jpush在使用上有无清晰的界限?
[1] 来自极光官方文档。