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

本文主要是介绍atitit web 推送实现方案集合 2 百度云 jpush 极光推送 个推的选型比较 o99,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

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模式..

 

我要啦免费统计           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述

这篇关于atitit web 推送实现方案集合 2 百度云 jpush 极光推送 个推的选型比较 o99的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/364749

相关文章

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影