atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99

1.1. 云推送有推送次数或频率的限制吗? 1

1.2. 推送的消息长度 1

1.3. 离线消息的支持 2

1.4. 是否支持转义字符 2

2. 客户端身份识别机制 2

3. 绑定客户端的区别流程::jpush胜出 2

4. 文档风格比较::百度,jpush胜出 3

5. 编程sdk框架比较..个推,百度胜出
3

6. 编程风格的比较 3

6.1. 个推 3

6.2. 百度 4

6.3. Jpush 4

6.4. 总结::jpush 胜出.. 5

1.1. 云推送有推送次数或频率的限制吗?

云推送对单播推送的次数和频率没有限制。广播(不包括组播)推送频率有限制:1分钟内最多推送一条。 有关单播、组播和广播的相关概念和使用情景,请参考应用场景文档:http://developer.baidu.com/wiki/index.php?title=docs/cplat/push/scene

Jpush 600/min

个推好像马行上限制..

1.2. 推送的消息长度

· 目前单条消息支持最大 4K 的消息推送功能,兼容文本和二进制消息格式。

如果应用有超过 4K 数据推送的需求,则应用可以在推送的消息里携带资源的 URL 地址,客户端在接收到消息后,主动对这个超过 4K 的数据发起另外一次请求。

Jpush 1k,,  个推2k

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

1.3. 离线消息的支持

云推送服务提供消息暂存、转发和推送的功能,客户端无需保持在线状态及进行反复轮询,消息不会丢失

Jpush 只5个离线消息???

个推马行上..

1.4. 是否支持转义字符

个推不支持转义字符

Jpush,百度支持

2. 客户端身份识别机制

·  channel id : 推送通道ID,通常指一个终端,如一台android系统手机。客户端绑定调用返回值中可获得

走十jpush黑头的alias

ClientID  个推业务层中的对外用户标识,用于标识客户端身份,由第三方客户端获取并保存到第三方服务端,是个推SDK的唯一识别号,简称CID。

总结:::普通的还是clientID比较好,,意思清晰...不过要是客户端多信道,channelID 更正确的

3. 绑定客户端的区别流程::jpush胜出

bdc

一个channel id指定一个终端,因此在这种需求下,开发者需要通过服务端API,向一个特定channel id推送消息。在推送之前,客户端应用通过绑定接口的返回值获取到channel id,并通过网络等手段发送给开发者,开发者需自行维护channel id。

Jpush ,,client可以从服务器获得eq id,,,,client可以绑定自定义alias (eq id)

个推

ID可通过BroadcastReceiver子类bundle.getString(“clientid”)获取

,,生成的ClientID(CID)建立映射绑定关系上传到第三方应用的服务器。个推的跟个百度的差不多..

总结::jpush模式好,灵活,其他不能自定义cid.....首先,客户生成cid,,在notice 服务器建立信道ok,在开始推送..中间能避免不生效的cid推送..容易的调试..

4. 文档风格比较::百度,jpush胜出

百度,jpush比较好,,,个推的有点儿少..

5. sdk框架比较..个推,百度胜出

例子代码使用:::个推的比较好,一哈走行上兰...jpush的半佬天半佬天新不上..百度的一般..

例子代码直接使用 率::个推,百度的都可以..jpush的不能使用,要嘎自自定义写了..

6.  编程风格的比较

6.1. 个推

public static void main(String[] args) throws Exception {

IGtPush push = new IGtPush(host, appkey, master);

push.connect();

LinkTemplate template = linkTemplateDemo();

SingleMessage message = new SingleMessage();

message.setOffline(true);

//离线有效时间,单位为毫秒,可选

message.setOfflineExpireTime(24 * 3600 * 1000);

message.setData(template);

List targets = new ArrayList();

Target target1 = new Target();

Target target2 = new Target();

target1.setAppId(appId);

target1.setClientId(CID);

IPushResult ret = push.pushMessageToSingle(message, target1);

System.out.println(ret.getResponse().toString());

}

6.2. 百度

// 2. 创建BaiduChannelClient对象实例

BaiduChannelClient channelClient = new BaiduChannelClient(pair);

// 4. 创建请求类对象

// 手机端的ChannelId, 手机端的UserId, 先用1111111111111代替,用户需替换为自己的

PushUnicastMessageRequest request = new PushUnicastMessageRequest();

request.setDeviceType(3); // device_type => 1: web 2: pc 3:android

// 4:ios 5:wp

request.setChannelId(11111111111L);

request.setUserId("1111111111111");

request.setMessage("Hello Channel");

// 5. 调用pushMessage接口

PushUnicastMessageResponse response = channelClient

.pushUnicastMessage(request);

// 6. 认证推送成功

6.3. Jpush

/**

*

@author attilax 老哇的爪子

@since  o7t 0_45_41$

* @param txt

* @param target

* @throws connOrReqErr

* @throws APIConnectionException

* @throws APIRequestException

*/

public static void  SendPush(String txt,String... target) throws APIConnectionException, APIRequestException   {

// HttpProxy proxy = new HttpProxy("localhost", 3128);

// Can use this https proxy: https://github.com/Exa-Networks/exaproxy

JPushClient jpushClient = new JPushClient(masterSecret, appKey, 3);

// For push, all you need do is to build PushPayload object.

PushPayload payload = PushPayload.newBuilder()

.setPlatform(Platform.android())

.setAudience(Audience.alias(target))

.setNotification(Notification.alert(txt))

.build();

try {

PushResult result = jpushClient.sendPush(payload);

}

}

6.4. 总结::jpush 胜出..

百度跟个推都是传统的编程风格...and jpush 走十使用不方法链,builder模式..

atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99的更多相关文章

  1. atitit.web 推送实现方案集合

    atitit.web 推送实现方案集合 1. 俩中模式 Push/Pull 1 2. 需要实现的特性 2 2.1. 推送消息广播. 2 2.2. 推送定向消息. 2 2.3. 提供连接上线前.上线.下 ...

  2. android开发(25) - 推送的实现,使用百度云推送

    什么叫推送? 中文名称:推送 英文名称:push 定义:描述因特网内容提供者和因特网用户之间工作方式的术语.“推送”指因特网内容提供者定期向预订用户“提供”数据. 项目中有可能会用到推送.如果自己写一 ...

  3. Android消息推送完美方案[转]

    转自 Android消息推送完美方案 推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原因,Android消息推送我们不得不大费周折.本文就是用来 ...

  4. Android消息推送完美方案

    转自:http://bbs.hiapk.com/thread-4652657-1-1.html 推送功能在手机应用开发中越来越重要,已经成为手机开发的必须.在Android应用开发中,由于众所周知的原 ...

  5. Amazon SNS移动推送更新——新增百度云推送和Windows平台支持

    Amazon SNS(Simple Notification Service)是一种基于云平台的消息通知和推送服务. SNS提供简单的 Web 服务接口和基于浏览器的管理控制台让用户可以简易设置.执行 ...

  6. 使用【百度云推送】第三方SDK实现推送功能具体解释

    之前介绍过怎样使用shareSDK实现新浪微博分享功能,今天介绍怎样使用百度云推送SDK实现Android手机后台推送功能. 执行效果例如以下 第一步,假设使用百度的SDK,当然要先成为百度的开发人员 ...

  7. .atitit.web 推送实现解决方式集合(3)----dwr3 Reverse Ajax

    .atitit.web 推送实现解决方式集合(3)----dwr3 Reverse Ajax 1. 原理实现 1 2. Page  添加配置.添加回调函数dwr.engine.setActiveRev ...

  8. .atitit.web 推送实现解决方案集合(3)----dwr3 Reverse Ajax

    .atitit.web 推送实现解决方案集合(3)----dwr3 Reverse Ajax 1. 原理实现 1 2. Page  增加配置,增加回调函数dwr.engine.setActiveRev ...

  9. atitit.跨架构 bs cs解决方案. 自定义web服务器的实现方案 java .net jetty  HttpListener

    atitit.跨架构 bs cs解决方案. 自定义web服务器的实现方案 java .net jetty  HttpListener 1. 自定义web服务器的实现方案,基于原始socket vs   ...

随机推荐

  1. 安卓 io流 写入文件,再读取的基本使用

    1.布局 布局里面只有一个EditView,通过输入内容之后,当触发 onDestroy 方法时,将输入的数据存储在当前应用的data/data/files文件夹下. <?xml version ...

  2. hdu 1577 WisKey的眼神 (数学几何)

    WisKey的眼神 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  3. RGBA 与opacity

    RGBA是一种表示颜色的方式,初次看到觉得很奇怪,与RGB的区别是什么?后面查了下,才发现RGBA的好处. RGBA各个字母的含义为: R:红色值,正整数 | 百分数: G:绿色值,正整数 | 百分数 ...

  4. Confluence部署攻略 [转]

    一.软件介绍 AtlassianConfluence(简称Confluence)是一个专业的wiki程序.它是一个知识管理的工具,通过它可以实现团队成员之间的协作和知识共享.Confluence不是一 ...

  5. mysql 统计

    每周: select count(*) as cnt,week(editdate) as weekflg from projects where year(editdate)=2007 group b ...

  6. img图片放大控件 lightbox.js

    1.引入相关js,css jquery-1.7.2.min.js,lightbox.css,lightbox.js   2 图片增加<a href="大图片地址" rel=& ...

  7. php错误级别的设置方法

    PHP在运行时, 针对严重程度不同的错误,会给以不同的提示. eg:在$a没声明时,直接相加,值为NULL,相加时当成0来算.但是,却提示NOTICE,即注意. 我们在开发中, 为了程序的规范性,把报 ...

  8. Apache禁止目录访问的方法

    在学习ThinkPHP(3.2.3)的时候,公共文件夹.应用目录文件夹等都自带或者自动生成index.html的安全文件.但是ThinkPHP文件夹(核心包)却没有这样的设置.那么ThinkPHP核心 ...

  9. Unresolved external 'LresultFromObject'

    [ILINK32 Error] Error: Unresolved external 'LresultFromObject' referenced from D:\PROGRAM FILES\EMBA ...

  10. C# async await 学习笔记2

    C# async await 学习笔记1(http://www.cnblogs.com/siso/p/3691059.html) 提到了ThreadId是一样的,突然想到在WinForm中,非UI线程 ...