zoukankan      html  css  js  c++  java
  • atitit.web 推送实现方案集合(2)百度云,jpush 极光推送 ,个推的选型比较.o99

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

    我要啦免费统计
  • 相关阅读:
    高级特性(4)- 数据库编程
    UVA Jin Ge Jin Qu hao 12563
    UVA 116 Unidirectional TSP
    HDU 2224 The shortest path
    poj 2677 Tour
    【算法学习】双调欧几里得旅行商问题(动态规划)
    南洋理工大学 ACM 在线评测系统 矩形嵌套
    UVA The Tower of Babylon
    uva A Spy in the Metro(洛谷 P2583 地铁间谍)
    洛谷 P1095 守望者的逃离
  • 原文地址:https://www.cnblogs.com/attilax/p/15199110.html
Copyright © 2011-2022 走看看